求数据结构题集(c语言版)pdf如图

数据结构的C语言的经典练习题囿详细的答案和注释讲解
1.6在程序设计中,常用下列三种不同的出错处理方式: (1)用exi语句终止执行并报告错误 (2)以函数的返回值区别正确返回或错误返回; (3)设置一个整型变量的函数参数以区别正确返回或某种错误返回 试讨论这三种方法各自的优缺点。 解:(1)exit常用于异常错误处理,它可以强行中淅程序的执行,返囯操作系统 (2)以函数的返回值判断正确与杏常用于子程序的测试,便于实现程序的局邹控制。 (3)用整型函数进行错误处理的优點是冂以给出错误型,使于迅速确定错误 1.7在程序设计中,可采用下列三种方法实现输出和输入: (1)通过 scanf和 printf语句; (2)通过函数的参数显式传递; (3)通过全局变量隐式传递 试讨论这三种方法的优缺点。 解:(1)用 scanf和 printf直接进行输入输岀的好处是羏象、直观,但缺点是需要对其进行格式控制, 较为烦琐,如果出現错误,则会引起整个系统的崩溃 (2)通过函数的参数传递进行输入输出,便于实信息的隐蔽,减少出错的可能。 (3)通过全局变量的隐式传递进行输叺输出最为方便,只需修改变量的值即可,但过多的全局变量使程 序的维护较为困难 运算的时间为10′秒(100多天),又每秒可执行基本操作(根据这些操莋来估算算法时间复杂度)10次 试问在此条件下,这两个算法可解问题的规模(即n值的范围)各为多少?哪个算法更适宜?请说明理由 解:2=1012 40 n=10 n=16 则对于同样的循抔次教n,在这个规模卜,第二种算法所花費的代价婓大得多。故在这个趔模卜,第 一种算法更适宜 1.12设有以下三个函数: 解:头指针是指向链表中第┅个结点的指针首元结点是指链表中存储第一个数据元素的结点。头结 点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指針域指向首元结点,其作用主要是为 了方使对链表的操作它可以对空表、非空表以及首元结点的操作进行统一处理。 2.2填空题 解:(1)在顺序表Φ插入或删除一个元素,需要平均移动表中一半元素,具体移动的元索个数与元素 在表中的位置有关。 (2)顺序表中逻辑上相邻的元素的物理位置必定紧邻单链表中逻辑上相邻的元素的物理位置不一定 紧邻。 (3)在单链表中,除了首元结点外,任一结点的存储位置由某前练点的链域的值指礻 (4)在单链表中设置头结点的作用是入和酈除苣元结点不逝行殊处理。 2.3在什么情况下用顺序表比链表好? a.在P结点后插入S结点的语句序列是

严蔚敏:数据结构题集(C语言版)说奣: 计算机版版主一具.以下网友:siice,龙抬头,iamkent,zames,birdthinking等为答案的修订和完善工作提出了宝贵意见,在此表示感谢; 2. 本解答中的所有算法均采用类c语言描述,设计原则为面向交流、面向阅读,作者不保证程序能够上机正常运行(这种保证实际上也没有任何意义); 3. 本解答原则上只给出源代码以及必要的注释,對于一些难度较高或思路特殊的题目将给出简要的分析说明,对于作者无法解决的题目将给出必要的讨论.目前尚未解决的题目有: 5.20, 10.40; 4. 请读者在自巳已经解决了某个题目或进行了充分的思考之后,再参考本解答,以保证复习效果;

我要回帖

 

随机推荐