数据结构综合题.docx
- 文档编号:27637602
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:11
- 大小:18.51KB
数据结构综合题.docx
《数据结构综合题.docx》由会员分享,可在线阅读,更多相关《数据结构综合题.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构综合题
综合题
1.设一组记录的关键字序列为(49,83,59,41,43,47),采用堆排序算法完成以下操作:
(要求小根堆,并画出中间过程)
(1)以二叉树描述6个元素的初始堆
(2)以二叉树描述逐次取走堆顶元素后,经调整得到的5个元素、4个元素的堆
(1)
59
(2)
49
49
43
59
49
2、设有一个不带头结点的单向链表,头指针为head,结点类型为NODE,每个结点包含一个数据域data和一个指针域next,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句(不要求完整程序,
(1)、
(2)、(3)、(4)是一个连续的过程)。
(1)新开辟一个结点,使指针s指向该结点,结点的数据成员data赋值为1
(2)把该结点插入链表的尾部,释放指针s的指向
(3)删除链表的第一个结点
(4)已知p1指向另一个新结点,把它插入到p所指结点和尾结点之间
(1)s=(NODE*)malloc(sizeof(NODE));s->data=1;
(2)p->next=s;
s->next=NULL;
free(s)
(3)head=head->next;
(4)p1->next=p->next;
p->next=p1;
3.设有序表为(13,19,25,36,48,51,63,84,91,116,135,200),元素的下标依次为1,2,……,12。
(1)说出有哪几个元素需要经过4次元素间的比较才能成功查到
(2)画出对上述有序表进行折半查找所对应的判定树(树结点用下标表示)
(3)设查找元素5,需要进行多少次元素间的比较才能确定不能查到
(1)19,48,84,116,200
9
(2)
(3)3次
4.
(1)设有序列{10,12,15,19,22,25,100,130,150,200}画出对上述序列进行折半查找的判定树(以序列中的元素作为树的结点)
(2)为了成功查找到100需要进行多少次元素间的比较?
为了查找9,经过多少次元素间的比较可知道查找失败?
10
(1)
(2)4次,3次
5.
(1)对给定数列{7,16,4,8,20,9,6,18,5},依次取数列中的数据,构造一棵二叉排序树。
(2)对一个给定的查找值,简述针对二叉排序树进行查找的算法步骤,在上述二叉树中查找元素20共要进行多少次元素的比较?
18
(1)
(2)先将给定值与根结点比较,若相等则查找成功,否则若小于根结点则在左子树中继续查找,大于根结点在右子树中查找,查找20共进行3次比较。
6.
(1)设有查找表{5,14,2,6,18,7,4,16,3},依次取表中数据,构造一棵二叉排序树。
(2)说明如何由序列的二叉排序树得到相应序列的排序结果,对上述二叉排序给出中序遍历的结果。
14
(1)
(2)中序遍历
中序2,3,4,5,6,7,14,16,18
1.
(1)已知某二叉树的后序遍历序列是debca,中序遍历序列是dbeac,试画出该二叉树
(2)若上述二叉树的各个结点的字符分别代表不同的整数(其中没有相等的),并恰好使该树成为一棵二叉排序树,试给出a、b、c、d、e的大小关系
(3)给出该树的前序遍历序列
d
(1)
(2)d
2.
(1)已知某二叉树的先序遍历序列是aecdb,中序遍历序列是eadcb,试画出该二叉树
(2)给出上述二叉树的后序遍历序列
(3)若上述二叉树的各个结点的字符分别是1,2,3,4,5,并恰好使该树成为一棵二叉排序树,试问a、b、c、d、e的值各为多少?
d
(1)
(2)edbca
(3)e=1,a=2,d=3,c=4,b=5
3.
(1)设有一个整数序列{40,28,6,72,100,3,54}依次取出序列中的数,构造一棵二叉排序树
(2)对上述二叉排序树,在等概率条件下,求成功查找的平均查找长度
6
(1)
(2)ASL=(1x1+2x2+3x3+4)/7=18/7
4.
(1)给定数列{8,17,5,9,21,10,7,19,6},依次取序列中的数构造一棵二叉排序树
(2)对上述二叉树给出中序遍历得到的序列
10
(1)
(2)5,6,7,8,9,10,17,18,19,21
5.
(1)利用筛选过程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),画出相应的完全二叉树(不要求中间过程)
(2)写出对上述堆对应的完全二叉树进行中序遍历得到的序列
82
102
(1)
102
初始树堆
(2)102,52,42,82,16,67,32,57
6.
(1)以给定权重值1,2,12,13,20,25为叶结点,建立一棵哈夫曼树
1
(2)若哈夫曼树有n个非叶子结点,则树中共有多少结点。
对给定的一组权重值建立的棵哈夫曼树是否一定唯一
(1)
(2)2n-1不一定唯一
1.
(1)设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表,写出其中两个关键的赋值语句(不用完整程序,结点的链域为next)。
(2)单向链表的链域为next,设指针p指向单向链表中的某个结点,指针s指向一个要插入链表的新结点,现要把s所指结点插入p所指结点之后,某学生采用以下语句:
p->next=s;s->next=p->next;
这样做正确吗?
若正确则回答正确,若不正确则说明应如何改写
(1)p1->next=head2;p2->next=head1;
(2)不对,s->next=p->next;p->next=s;
2.
(1)一组记录的关键字序列为{45,40,65,43,35,95}写出利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果(要求给出一趟划分中每次扫描和交换的结果)
(2)同样对序列{45,40,65,43,35,95}利用直接插入排序,写出逐次插入过程(从第一个元素一直到第六个元素)。
(1)454065433595
354065433595
354065436595
354043436595
354043456595
(2)404565433595
404345653595
354043456595
3.
(1)画出对长度为10的有序表进行折半查找的判定树(以序号1,2,……10表示树结点)
(2)对上述序列进行折半查找,求等概率条件下,成功查找的平均查找长度
1
(1)
(2)ASL=(1x1+2x2+3x4+4x3)/10=29/10
4.
(1)利用筛选过程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),画出相应的完全二叉树(不要求中间过程)
(2)写出对上述堆对应的完全二叉树进行中序遍历得到的序列
82
102
102
初始树堆
(2)102,52,42,82,16,67,32,57
5.
(1)利用筛选法把序列{37,77,62,97,11,27,52,47}建成堆(小根堆),画出相应的完全二叉树
(2)写出对上述堆所对应的二叉树进行前序遍历得到的序列
97
97
(1)
初始树堆
(2)11,37,47,97,77,27,62,52
6.
(1)设有一个整数序列{50,38,16,82,110,13,64},依次取出序列中的数,构造一棵二叉排序树
16
(2)利用上述二叉排序树,为了查找110,经多少次元素间的比较能成功查到,为了查找15,经多少次元素间的比较可知道查找失败
(1)
(2)三次;四次
1.设一组记录的关键字序列为(49,83,59,41,43,47),采用堆排序算法完成以下操作:
(要求小根堆,并画出中间过程)
(1)以二叉树描述6个元素的初始堆
(2)以二叉树描述逐次取走堆顶元素后,经调整得到的5个元素、4个元素的堆
59
(1)
43
49
49
(2)
59
49
2.一组记录的关键字序列为(46,79,56,38,40,84)
(1)利用快速排序的方法,给出以第一个记录为基准得到的一次划分结果(给出逐次交换元素的过程,要求以升序排列)
(2)对上述序列用堆排序的方法建立大根堆,要求以二叉树逐次描述建堆过程。
(1)初始序列
46,79,56,38,40,84
40,79,56,38,40,84
40,79,56,38,79,84
40,38,56,38,79,84
40,38,56,56,79,84
40,38,46,56,79,84
46
3.设有序表为(13,19,25,36,48,51,63,84,91,116,135,200),元素的下标依次为1,2,……,12。
(1)说出有哪几个元素需要经过4次元素间的比较才能成功查到
(2)画出对上述有序表进行折半查找所对应的判定树(树结点用下标表示)
(3)设查找元素5,需要进行多少次元素间的比较才能确定不能查到
(1)19,48,84,116,200
9
(2)
(3)3次
4.设查找表为(16,15,20,53,64,7),
(1)用冒泡法对该表进行排序(要求升序排列),写出每一趟的排序过程,通常对n个元素进行冒泡排序要进行多少趟冒泡?
第j趟要进行多少次元素间的比较?
(2)在排序后的有序表的基础上,画出对其进行折半查找所对应的判定树.(要求以数据元素作为树结点)
(3)求在等概率条件下,对上述有序表成功查找的平均查找长度.
(1)原序列16152053647
15162053764n-1趟
15162075364n-j次
15167205364
15716205364
71516205364
53
(2)
(3)平均查找长度=(1*1+2*2+3*3)/6=14/6
5.
(1)对给定数列{7,16,4,8,20,9,6,18,5},依次取数列中的数据,构造一棵二叉排序树。
(2)对一个给定的查找值,简述针对二叉排序树进行查找的算法步骤,在上述二叉树中查找元素20共要进行多少次元素的比较?
18
(1)
(2)先将给定值与根结点比较,若相等则查找成功,否则若小于根结点则在左子树中继续查找,大于根结点在右子树中查找,查找20共进行3次比较。
6.
(1)“一棵二叉树若它的根结点的值大于左子树所有结点的值,小于右子树所有结点的值,则该树一定是二叉排序树”。
该说法是否正确,若认为正确,则回答正确,若认为不正确则说明理由?
(2)设有查找表{7,16,4,8,20,9,6,18,5},依次取表中数据构造一棵二叉排序树.对上述二叉树给出后序遍历的结果.
(1)不正确,二叉排序树要求其子树也是二叉排序树。
18
(2)
后续遍历5,6,4,9,8,18,20,16,7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 综合