1第1章绪论2
(1)×(2)×(3)√3
〔1〕A〔2〕C〔3〕C5
计算以下程序中x=x+1的语句频度for(i=1;inext;DS->next=P->next;ES->next=L;FS->next=NULL;GQ=P;Hwhile(P->next
=Q)P=P->next;Iwhile(P->next
=NULL)P=P->next;JP=Q;KP=L;LL=S;3ML=P;(3)D(4)D(5)D(6)A7试分别以不同的存储结构实现单线表的就地逆置算法,即在原表的存储空间将线性表〔a1,a2,⋯,an〕逆置为(an,an-1,⋯,a1)
【解答】〔1〕用一维数组作为存储结构voidinvert(SeqList*L,int*num){intj;ElemTypetmp;for(j=0;jnext==NULL)return;/*链表为空*/p=L->next;q=p->next;p->next=NULL;/*摘下第一个结点,生成初始逆置表*/while(q
=NULL)/*从第二个结点起依次头插入当前逆置表*/{r=q->next;q->next=L->next;L->next=q;q=r;}}11将线性表A=(a1,a2,⋯⋯am),B=(b1,b2,⋯⋯bn)合并成线性表C,C=(a1,b1,⋯⋯am,bm,bm+1,⋯⋯
bn)当mn时,线性表A、B、C以单链表作为存储结构,且C表利用A表和B表中的结点空间构成
注意:单链表的长度值m和n均未显式存储
【解答】算法如下:LinkListmerge(LinkListA,LinkListB,LinkListC){Node*pa,*qa,*pb,*qb,*p;pa=A->next;/*pa表示A的当前结点*/pb=B->next;p=A;/*利用p来