- 15
- 0
- 约1.74万字
- 约 8页
- 2016-10-12 发布于贵州
- 举报
数据结构(C语版)清华大学出版社 课后题1-5章答案
第一章
选择题
1.A 2.B 3.C 4.D 5.B 6.C
第二章
选择题
1.A 2.D 3.D 4.C 5.A 6.C 7.B 8.B 9.D 10.D
应用题
1.
应该选用链接存储表示。如果才用顺序表示法,必须在一个连续的可用空间中为这N个表分配空间。初始时候因为不知道哪个表增长得快,必须平均分配空间。在程序运行过程中,有的表占用的空间增长得快,有的表占用空间增长得慢,有的表很快就使用完了分配给它的空间,有的表才占用了少许空间,在进行元素的插入时候就必须成片的移动其他表的空间,以空出位置进行插入;在元素删除时为填补空白,也可能移动许多元素。这个处理过程及其繁琐和低效。
如果采用链接存储,一个表的空间可以连续也可以不连续。表的增长通过动态分配内存得以解决,只要存储器未满,就不会发生表溢出;表的收缩可以通过动态存储释放实现,释放的空间还可以在以后动态分配给其他的存储需求,非常灵活方便。对于N个表(包括表的总数可能变化)共存的情形,处理十分简单快捷,插入、删除时间复杂度为O(1)。所以才用链接存储表示较好。
2.
一般来说,链式存储结构克服了顺序存储结构的三个缺点。首先,插入、删除操作不需要移动元素,只修改指针;其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受到内存空间的限制。其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。
3.
顺序结构时ai与ai+1的物理位置相邻,链表结构时两者的位置不要求一定相邻。
7.
在顺序表中插入和删除一个节点需平均移动全表一半的节点。具体的移动次数取决于所插入和删除的节点的位置i和全表的长度n这两个因素。
算法设计题
分析:遍历整个顺序表,用k记录在x~y之间元素的个数,k的初始值为0。对于当前遍历到的元素,若其值在x~y之间,则前移k个位置;否则执行++k。这样每个不在x~y之间的元素仅仅移动一次,所以效率较高。
void Delete_xy( SeqList *A,int x,int y ){
int k;
k = 0;
for( i=0;iA-length;++i ){
if( A-data[i]x A-data[i]y )
k++;
else
A-data[i-k] = A-data[i]; /* 当前元素前移k个位置 */
A-length = A-length - k; /* 线性表长度减小 */
}
}
2.设集合A和B分别用两个递增有序的单链表表示,其中他们的头指针是pa和pb。求A交B的操作就是对A扫描,如果当前的扫描到的元素在B中出现则保留,否则删除。
LinkList AbingB( LinkList A,LinkList B ){
LinkList pa,pb,pre;
pa = A-next;
pb = B-next;
pre = A;
while( papb ){
if( pa-datapb-data ){ /* 若大于,则pb指针后移 */
q = pa;
pa = pa-next;
pre-next = pa;
free(q);
}else{ /* 相等,保留,pa、pb指针后移 */
pre = pa;
pa = pa-next;
pb = pb-next;
}
}
while( pa ){ /* 若单链表A没有遍历完,则将剩余节点删除 */
q = pa;
pa = pa-next;
free(q);
}
pre-next = NULL;
return (A);
}
本算法的时间开销主要是遍历,故时间复杂度为O(n)
分析:依次遍历访问单链表的节点,用冒泡排序的思想将该链表整理成有序。冒泡排序算法的基本思想比较简单:两两比较元素,值域小的元素前置,直到不再发生交换。
LinkList Sort_LinkList( LinkList L ){
int x,noswap;
LinkList pa,pb;
pa = L-next;
noswap = 1;
if( pa ){
while( noswap ){
noswap = 0;
pb = pa-next;
while( pb(pb-next!=NULL) ){
if( pb-datapb-next-data ){
x = pb-data;
pb-data = pb-next-data;
pb-next-data = x;
noswap = 1;
}
pb =
您可能关注的文档
- 数据库原理与应复习提纲.doc
- 数据库原理与应实验12(二版).doc
- 数据库原理与应实验1(二版)1.doc
- 数据库原理与应实验报告.doc
- 数据库原理与应实验报告模版2012版.doc
- 数据库原理与应教程-(第二版)人民邮电出版社习题参考答案.doc
- 数据库原理与应教程-课后习题参考答案(第二版)人民邮电出版社.doc
- 数据库原理与应综合实验报告.doc
- 数据库原理与应试题B.doc
- 数据库原理与应课后习题答案李春葆 编.doc
- 国联民生证券-食品饮料行业动态报告-从“价”逻辑看大众品.pdf
- 国海证券-机械行业专题报告-日系品牌摩托车系列4,本田,摩托车全球市占率40%如何拆解.pdf
- 兴业证券-螺蛳壳里做道场-论债券ETF的升贴水波段套利.pdf
- 国海证券-山推股份-000680-公司深度研究-“挖”出新天地,“推”向全世界.pdf
- 高盛-中国游戏娱乐人民币走势表明在线消费稳定,线下形式分化-有吸引力的估值修正CHINA GAMES -ENTERTAINMENT CNY trend indicates stable online spending and divergence in offlineforma-260225-12页.pdf
- 机器人产业-人工智能-具身智能行业产业发展现状与趋势调研报告(2025年).pdf
- 国信证券-矩阵股份-301365-业绩触底回升,“AI+设计”探索第二曲线.pdf
- 开源证券-觅睿科技-920036-北交所新股申购报告-觅睿科技-智能网络摄像机“小巨人”,以AI赋能全球全场景安防.pdf
- 广发证券-量化可转债研究之十三-可转债组合的风险中性方法对比.pdf
- 光大证券-碳中和深度报告(十四)-碳排放双控转型推动碳成本重估看好绿电的非电应用.pdf
原创力文档

文档评论(0)