资源描述
2.6.数据的存储结构主要有哪两种?它们之间的本质区别是什么?
答:主要有:顺序存储结构和链式存储结构两种。
区别: 顺序存储结构是借助元素在存储器的相对位置来表示数据间的逻辑关系,而链式存储结构是借助指针来表示数据间的逻辑关系。
2.7 设数据结构的集合为D={d1,d2,d3,d4,d5},试指出下列各关系R所对应的数据结构B=(D,R)中哪些是线性结构,哪些是非线性结构。
(1)R={(d1,d2),(d2,d4),(d4,d2),(d2,d5),(d4,d1)};
( 2 ) R={(d5,d4),(d4,d3),(d3,d1),(d1,d2)};
( 3 ) R={(di,di+1)|i=4,3,2,1};
( 4 ) R={(di,dj)|i<j};
( 5 ) R={(di,dj)|j=(5i3+4i2-3i+2)}.
解:线性结构:(2),(3),(5);
非线性结构:(1),(4)。
2.16 试比较顺序表和链表的优缺点。
答:(1)优点
1〉.顺序表: 查找方便,适合随机查找;内存中地址连续;长度不可变更;可以在O(1)内查找元素;适用于需要大量访问元素的而少量增添或删除元素的程序。
2.〉链表: 扩展性强,易于删除,添加;内存中地址非连续;长度可以实时变化;适用于需要进行大量增添或删除元素操作而对访问元素无要求的程序。
(2)缺点
顺序表:插入,删除操作不方便;扩展性弱;不易删除,添加。
链表:不易于查询,索引慢。
(3)顺序表和链表的优缺点是互相补充的关系。
2.17 试比较单向链表与双向链表的优缺点。
答:(1)优点
单向链表:耗存储空间小;
双向链表:可以从任何一点开始进行访问;
(2)缺点:
单向链表:访问时必须从头开始,耗时。
双向链表:耗存储空间大。
(3)两者为互补关系
2.22 CQ[0:10]为一循环队列,初态front=rear=1,画出下列操作后队的头,尾指示器状态:
(1)d,e,h,g,入队;
(2)d,e出队;
(3)I,j,k,l,m入队;
(4)b出队;
(5)n,o,p,q,r入队。
解:(1) front=1,Rear=6
(2)front=3,Rear=6
(3)front=3, Rear=11
(4)front=4, Rear=11
(5)front=4,Rear=16
2.29设一棵完全二叉树有1000个结点,试问:
(1) 有多少个叶子结点;
(2) 有多少个度为2的结点;
(3) 有多少个结点只有非空左子树。
解:
(1) 因为n=1000,当2i>n时,无叶子结点,则i>500,所以501到1000的结点为叶子结点,有500个叶子结点。
(2) 。有499个度为2的结点
(3) 有1个结点只有非空左子树。
2.30 设一棵二叉树其中序和后序遍历为
中序:BDCEAFHG 后序:DECBHGFA
画出这棵二叉树的逻辑结构,并写出先序遍历结果。 其逻辑结构如下:
展开阅读全文