2019《数据结构》期末试卷B答案

发布 2024-01-01 04:45:13 阅读 5080

pop(s2, x); return ok;

else //栈s1和s2都为空。

return error;

二、(本题15分)用孩子兄弟链表作为树的存储结构,设计算法求出树的深度。

解:算法思路:一棵树的深度可以递归定义为:若树为空,则深度为0,否则树的深度为根结点的所有子树深度的最大值加1。

数据结构为:

typedef struct csnode

return m+1;

三、(本题15分)已知在某并发处理系统的petri网基础上建立的可达图如下图所示。图中每个顶点表示系统运行中的一种状态,有向边(弧)表示事件(用t表示),例如有向边(vi,vj)表示系统在状态vi时出现该事件将引发系统由状态vi到状态vj。

1)请分别给出该可达图的邻接表、邻接矩阵以及邻接矩阵的三元组3种存储表示的形式说明和存储结果示意图,要求每种存储结构能够表达出该可达图的全部信息,并分别对这三种形式中每个部分的含义予以简要说明。

2)若假设每个域(包括指针域)的长度为2个字节,请分别计算出这三种结构所占用的空间大小。

四、(本题15分)设计一个算法,判断无向图g(图中有n个顶点)是否是一棵树。

解:算法思路:从第v个顶点出发,对图进行深度优先搜索。

若在算法结束之前,又访问了某一已访问过的顶点,则图g中必定存在环,g不是一棵以v为根的树。若在算法结束之后,所访问的顶点数小于图的顶点个数n,则图g不是连通图,g也不是一棵以v为根的树。

boolean visited[max用于标识结点是否已被访问过。

status ( visitfunc) (int v); 函数变量。

void dfstr**erse( graph g, status ( visitfunc) (int v));

status dfs( graph g, int v );

2)基本操作是关键字比较操作和记录移动操作。其中关键字比较操作为o(n2),记录移动操作为o(n)。因此,总的时间复杂性为o(n2)。

2019《数据结构》期末试卷B卷

一 本题10分 1 线性表和广义表的主要区别点是什么?已知广义表 c a,b,a,b a,b a,b 则tail head tail c 2 满足什么条件可以实施二分查找?二分查找的时间复杂度是多少?二 本题10分 证明 一棵二叉树的先序序列和中序序列可惟一确定这棵二叉树。三 本题15分 某带权有向...

数据结构 试卷b答案

中南财经政法大学2005 2006 学年第 2 学期期末考试试卷答案。课程名称 数据结构 b 卷课程代号 09091051 考试形式 闭卷 笔试使用对象 电子政务专业。一 单选题 共25题,每题1分,共25分 二 多选题 共5题,每题2分,共10分 三 填空题 共6题,每空1分,共10分 1.线性结...

杭师A 试卷 数据结构期末试卷答案

杭州师范大学国际服务工程学院2008 2009学年第二学期期末考试。数据结构与算法分析 试卷 a 注意 请将答案填写在答题纸上。一 选择 共30分,每小题3分,把最恰当的答案题号填到答题卷上 1.对于具有n个顶点的连通图 连通的无向图 其最少的边数目为。a.nb.n n 1 2 c.n 1d.n 1...