1、inext=(LinkList)malloc(sizeof(LNode); P=P-next; P-data=i*2-1; next=NULL; for(i=4;i=1;i-) Ins_LinkList(L,i+1,i*2);=3;i+) Del_LinkList(L,i);2.6 已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。a. 在P结点后插入S结点的语句序列是_。b. 在P结点前插入S结点的语句序列是_。c. 在表首插入S结点的语句序列是_。d. 在表尾插入S结点的语句序列是_。(1) P-next=S;(2) P-next=
2、P-next-(3) P-next=S-(4) S-(5) S-next=L;(6) S-(7) Q=P;(8) while(P-next!=Q) P=P-(9) while(P-=NULL) P=P-(10) P=Q;(11) P=L;(12) L=S;(13) L=P;a. (4) (1) b. (7) (11) (8) (4) (1) c. (5) (12) d. (9) (1) (6)2.7 已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。 a. 删除P结点的直接后继结点的语句序列是_。 b. 删除P结点的直接前驱结点的语
3、句序列是_。 c. 删除P结点的语句序列是_。 d. 删除首元结点的语句序列是_。 e. 删除尾元结点的语句序列是_。(1) P=P-next=P;(4) P=P-(5) while(P!(6) while(Q-=NULL) P=Q; Q=Q- (7) while(P-(10) Q=P;(11) Q=P-(12) P=L;(13) L=L-(14) free(Q);a. (11) (3) (14) b. (10) (12) (8) (3) (14) c. (10) (12) (7) (3) (14) d. (12) (11) (3) (14) e. (9) (11) (3) (14)2.8 已
4、知P结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。a. 在P结点后插入S结点的语句序列是_。b. 在P结点前插入S结点的语句序列是_。c. 删除P结点的直接后继结点的语句序列是_。d. 删除P结点的直接前驱结点的语句序列是_。e. 删除P结点的语句序列是_。priou=P-priou-priou;(4) P-priou=S;priou=P;(7) S-(8) S-(9) P-(10) P-(11) P-(12) P-(13) P-(14) P-(15) Q=P-(16) Q=P-(17) free(P);(18) free(Q);a. (7) (3) (6) (12) b
5、. (8) (4) (5) (13) c. (15) (1) (11) (18) d. (16) (2) (10) (18) e. (14) (9) (17)2.9 简述以下算法的功能。(1) Status A(LinkedList L) /L是无表头结点的单链表 if(L & L-next) Q=L; L=L- while(P-next) P=P- P-next=Q; Q- return OK; (2) void BB(LNode *s, LNode *q) p=s; while(p-=q) p=p- p-next =s; void AA(LNode *pa, LNode *pb) /pa和
6、pb分别指向单循环链表中的两个结点 BB(pa,pb); BB(pb,pa);(1) 如果L的长度不小于2,将L的首元结点变成尾元结点。 (2) 将单循环链表拆成两个单循环链表。2.10 指出以下算法中的错误和低效之处,并将它改写为一个既正确又高效的算法。Status DeleteK(SqList &a,int i,int k) /本过程从顺序存储结构的线性表a中删除第i个元素起的k个元素 if(i1|ka.length) return INFEASIBLE;/参数不合法 else for(count=1;count=i+1;j-) a.elemj-i=a.elemj; a.length-;
7、return OK; /从顺序存储结构的线性表a中删除第i个元素起的k个元素 /注意i的编号从0开始 int j;0|ia.length-1|ka.length-i) return INFEASIBLE; for(j=0;j=k;j+) a.elemj+i=a.elemj+i+k; a.length=a.length-k;2.11 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。Status InsertOrderList(SqList &va,ElemType x) /在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法 int i; if(va.length=va.listsize)return(OVERFLOW); for(i=va.length;0,xB.length?A.length:B.length; for(i=0; if(A.elemiB.elemi) j=1; if(A.elemik) j=1; if(B.lengthk) j=-1; if(A.length=B.length) j=0; return j;2.13 试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1