- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构平时作业
1.评价一个好的算法,应该从哪几方面来考虑的?
答:1、算法的正确性,2、算法的易读性,3、是算法的健壮性,4、是算法的时空效率(运行)。
2. 简述线性表的顺序和链式两种存储结构各自的主要特点。
答:1、顺序存储结构:存储单元地址连续,它以“物理位置相邻”来表示线性表中数据元素间的逻辑关系,可随机存取表中任一元素。但它也使得插入和删除操作需移动大量的数据元素。由于顺序表需要一组地址连续的存储单元,对于长度可变的线性表就需要预分配足够的空间,有可能使一部分存储空间长期闲置不能充分利用。也可能由于估计不足,当表长超过预分配的空间而造成溢出,在这种情况下,又难于扩充连续的存储空间。
2、链式存储结构:存储单元地址为任意一组,它的存储单元可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。因此,链表中结点的逻辑次序和物理次序不一定相同。在表示数据元素之间的逻辑关系时,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置),这两部分信息组成数据元素的存储映像,称为结点(node)
3. 说明在线性表的链式存储结构中,试述头结点,首元结点,头指针这三个概念的区别.
答:头结点、首元结点、头指针区别为:性质不同、目的不同、存在情况不同。
一、性质不同
1)头结点:头结点是在链表的首元结点之前附设的一个结点。
2)首元结点:首元结点是指链表中存储线性表中第一个数据元素a1的结点。
3)头指针:头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。
二、目的不同
1)头结点:头结点为了方便操作链表而附设的。
2)首元结点:首元结点作为链表的开始结点。
3)头指针:头指针为了指向链表的基地址。
三、存在情况不同
1)头结点:头结点对于单链表来说,头结点可有可无,但为了操作方便,一般情况下单链表都具有头结点。
2)首元结点:首元结点如果单链表有头结点,则首元结点为头结点的下一个结点,如果单链表没有头结点,则首元结点就是单链表的第一个结点。
3)头指针:头指针如果单链表有头结点,则头指针指向头结点,如果单链表没有头结点,则头指针指向第一个首元结点。
4. 设计一个算法,将元素x插入到一个有序(从小到大排序)顺序表的适当位置上,并保持有序性。
答:通过比较在顺序表L中找到插入x的位置i,将该位置及后面的元素均后移一个位置,将x插入到位置i中,最后将L的长度增加1。对应算法如下:
Void Insert(SqList *L,ElemType x)
{ int i=0,j;
while (iL-length L-data[i]x) i++;
for (j=L-length-1;j=i,j--)
L-data[j+1]=L-data[j];
L-data[i]=x;
L-length++;
}
5.设双向循环链表中结点的数据域、前驱和后继指针域分别为data,pre和next,试写出在指针p 所指结点之前插入一s结点的C++语言描述语句。
s-pre = p-pre;
s-pre-next = s;
s-next = p;
p-pre = s;
6. 有5 个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D最先出栈(即C第一个且D第二个出栈)的次序有哪几个?
答:有3个:CDBAE,CDEBA,CDBEA
7.若某非空二叉树的先序序列和后序序列正好相同,则该二叉树的形态是什么?为什么?
答:若某非空二叉树的先序序列和后序序列正好相同,则该二叉树的形态是空树或是只有根结点的树。因为:
若:根-左-右 == 左-右-根
当且仅当:左子树与右子树都为空树。
a8. 已知一棵二叉树的中序序列为cbedahgijf,后序序列为cedbhjigfa,给出该二叉树树形表示。
a
fb
f
b
cdg
c
d
g
ieh
i
e
h
j
j
9. 给定5个字符a~f,它们的权值集合W={2,3,4,7,8,9},试构造关于W的一棵哈夫曼树,求其带权路径长度WPL和各个字符的哈夫曼树编码。
33答:
33
10
1
0
1518
15
18
1100
1
1
0
0
9987
9
9
8
7
10edf
1
0
e
d
f
45
4
5
10c
1
0
c
23
2
3
ba
b
a
路径长度WPL=(7+8+9)*2+4*3+(2+3)*4=80
各字符哈夫树曼编码:a:0000,b:0001,c:001,d:10,e:11,f:01。
10. 有以下查找算法:
int fun(int a[],int n,int k)
{ int i;
原创力文档


文档评论(0)