《数据结构与算法》课后习题答案(37 页)Good is good, but better carries it.精益求精,善益求善。2.3 课后习题解答2.3.2 推断题1.线性表的逻辑顺序与存储顺序总是一致的。(×)2.顺序存储的线性表可以按序号随机存取。(√)3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。(×)4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。(√)5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定相邻。(×)6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。(√)7.线性表的链式存储结构优于顺序存储结构。(×)8.在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。(√)9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。(√)10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。(×)11.静态链表既有顺序存储的优点,又有动态链表的优点。所以它存取表中第 i 个元素的时间与 i 无关。(×)12.线性表的特点是每个元素都有一个前驱和一个后继。(×)2.3.3 算法设计题1.设线性表存放在向量 A[arrsize]的前 elenum 个重量中,且递增有序。试写一算法,将 x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入 x ,最后修改表示表长的变量。int insert (datatype A[],int *elenum,datatype x)/*设elenum 为表的最大下标*/{if (*elenum==arrsize-1) return 0;/*表已满,无法插入*/else {i=*elenum; while (i>=0 && A[i]>x)/*边找位置边移动*/{A[i+1]=A[i];i--;} A[i+1]=x;/*找到的位置是插入位的下一位*/ (*elenum)++;return 1;/*插入成功*/}}时间复杂度为 O(n)。2.已知一顺序表 A,其元素值非递减有序排列,编写一个算法删除顺序表中多余的值...