数据结构附部分答案(2)

2019-09-02 00:05

15. 设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有_e=2m_____关系。

一个点的度数就等于该点连接的边数,一条边连接2个点,这两个点的度数都要加1,也就是说,有一条边总的度数就要加2,所以总度数是边数的2倍

16. 已知一有向图的邻接表存储结构如下:从顶点1出发,DFS遍历的输出序列是

(1,3,4,5,2) ,BFS遍历的输出序列是 (1,3,2,4,5)

三、应用题

1、假定有四个元素A, B, C, D依次进栈,进栈过程中允许出栈,请写出所有可能的出栈

序列。

进一个出一个,ABCD

先进两个,AB进,进C出C,进D出D,出B出A,CDBA 进A进B,进C进D,出D出C出B出A,DCBA 下面的不解释了,不明白你再问 BCDA,BDCA,BCAD,BADC,BACD, 前三个一起进 CBAD,CBDA,CDBA 第一个进去就出来 ADCB,ACDB,ACBD 一共14种 例题

第 6 页 共 11 页

第 7 页 共 11 页

图3.2 有向图

用5个带权值{3,2,4,5,1}构造的哈夫曼树的带权路径长度是 (

第 8 页 共 11 页

8、 设有一个输入数据的序列是 { 46, 25, 78, 62, 12, 80 }, 试画出从空树起,逐个输

入各个数据而生成的二叉排序树。

第 9 页 共 11 页

四、程序填空

1、如下为二分查找的非递归算法,试将其填写完整。

Int Binsch(ElemType A[ ],int n,KeyType K) {

int low=0; int high=n-1;

while (low<=high) {

int mid=_______________________________;

if (K==A[mid].key) return mid; //查找成功,返回元素的下标

else if (K<[mid].key)

______________________________________; //在左子表上继续查找

else __________________________________; //在右子表上继续查找

}

return -1; //查找失败,返回-1 }

答案: (low+high)/2 high=mid-1 low=mid+1

2.循环队列的插入。

循环队列数据结构定义如下:

四、算法设计题

1、设计算法,在顺序表test中插入元素a到第i个位置。要求考虑表满情况。

第 10 页 共 11 页

2、设计算法,实现二叉树的递归先序遍历。

3、设计算法,实现n个整数的快速排序。

4、统计出单链表HL中结点的值等于给定值X的结点数。 int CountX(LNode* HL,ElemType x) { int i=0; LNode* p=HL;//i为计数器 while(p!=NULL)

{ if (P->data==x) i++; p=p->next;

}//while, 出循环时i中的值即为x结点个数 return i; }//CountX

5、 设计判断两个二叉树是否相同的算法。

typedef struct node {datatype data; struct node *lchild,*rchild;} bitree; int judgebitree(bitree *bt1,bitree *bt2) {

if (bt1==0 && bt2==0) return(1);

else if (bt1==0 || bt2==0 ||bt1->data!=bt2->data) return(0);

else return(judgebitree(bt1->lchild,bt2->lchild)*judgebitree(bt1->rchild,bt2->rchild)); }

6、 设计两个自小到大有序单链表ha,hb的合并排序算法,合并后的单链表头指针为hc。

7、实现对n个整数自小到大的直接插入排序 。

第 11 页 共 11 页


数据结构附部分答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国冰箱配件市场发展研究及投资前景报告(目录) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: