您的位置  > 互联网

:数据结构习题集答案(C语言版严蔚敏)

在S节点之前插入S节点的语句顺序是。 在表的开头插入S节点的语句顺序是。 在表尾插入S节点的语句顺序是。 while(P-next!=Q)P=P-next;while(P-next!=NULL)P=P-next;(10)2.7 已知L是一个带表头的非空单向链表节点,且 P 节点既不是第一个节点,也不是最后一个节点。 尝试从下面提供的答案中选择适当的陈述顺序。 删除P节点的直接后继节点的语句顺序是。 删除P节点的直接前驱节点的语句顺序是。 删除P节点的语句顺序是。 while(P!=NULL)P=P-下一个;while(P-下一个!=Q)P=P-下一个;while(P-下一个-下一个!=Q)P=P-下一个;while(P-下一个-下一个!=NULL)P=P-下一个;(10)(11)Q=P-下一个;(12)(13)L=L-下一个;(14)自由(Q);(10)(12) (10)(12)(12)(11)(14)2.8 已知节点P是双向链表的中间节点。 尝试从下面提供的答案中选择适当的陈述顺序。

在节点后插入S节点的语句顺序是___。 在该节点之前插入S节点的语句顺序是___。 删除P节点的直接后继节点的语句顺序是___。 删除P节点的直接前驱节点的语句顺序是___。 删除P节点的语句顺序是___。 P-priou-next=P-next;(10)P-priou-next=P;(11)P-next-priou=P;(12)P-next-priou=S;(13)P-priou-下一个=S;(14)P-下一个-priou=P-priou;(15)Q=P-下一个;(16)Q=P-priou;(17)自由(P);(18)自由(Q) ;(11)(18)(10)(18)(17)2.9 简述下列算法的功能。 ((P-下一个)P=P-下一个;P-下一个=Q;Q-下一个=NULL;;((p-下一个!=q)p=p-下一个;p-(LNode*pa,LNode*pb )//pa和pb分别指向单循环链表BB(pa,pb)中的两个节点 BB(pb,pa);如果L的长度不小于2,则将L的第一个节点改为最后一个节点 Node.

将一个单循环链表拆分为两个单循环链表。 2.10 指出下列算法中的错误和低效率,并将其重写为既正确又有效的算法。 (&a,inti,int//此过程从顺序存储结构的线性表a中删除从第i个元素开始的k个元素 if(i1||k0||i+ka.);//参数非法(count =1;;count++){//删除第一个元素 for(j=a.;j=i+1;j--)a.elem[ji]=a.elem[j];a.-- ;(&a,inti,int//从顺序存储结构的线性表a中删除从第i个元素开始的k个元素//注意i的编号从0开始 intif(i0||ia.-1| |k0| |ka.-i);a.elem[j+i]=a.elem[j+i+k];a.=a.-k;;2.11 假设序列表中的数据元素 va编写一个算法将 x 插入到顺序列表的适当位置以维持列表的顺序。

t(&va,//插入元素的算法[i-1];i--)va.elem[i]=va.elem[i-1];va.elem[i]=x;va.++; ;空列表,或者都不是 空列表,且 A 的第一个元素小于 ist(&A,(A.elem[i]B.elem[i])j=-1;if(B.)j=-1 ;if(A.==B. )2.13 尝试编写一个算法来实现线性列表操作 (L,x);(&L,(p&&p-data!=x){p=p-next;.14 尝试编写对头节点的单链表结构进行线性表操作(L) //返回单链表的长度(.