欢迎来到天天文库
浏览记录
ID:58536371
大小:15.50 KB
页数:2页
时间:2020-09-03
《数据结构链表习题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、练习题:1)在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行_____。A.p->next=q->next;q->next=p;B.q->next=p->next;p=q;C.p->next=q->next;p->next=q;D.q->next=p->next;p->next=q;2)在一个单链表head中,若要删除指针p所指结点的后继结点,则执行_____。A.p=p->next;free(p);B.p->next=p->next->next;free(p);C.q=p->next;q->nex
2、t=p->next;free(q);D.q=p->next;p->next=q->next;free(q);3)若长度为n的线性表(a1,a2,…,an)采用顺序存储,在第i个位置上插入一个新元素,需要依次向后移动个数据元素。An-iBn-i-1Cn-i+1Dn+i3)完成下列打印带头单链表的各元素的算法.typedefstructList{intdata;structList*next;}Node,*Link;voidprintlk(Linkhead){Linkp=head->next;while(p(1)){printf(
3、“%d”,p->data);(2)p=p->next;}4)已知无头单链表A和B表示两个集合,本算法实现A=A-B(集合的补运算)。typedefstructnode{intdata;structnode*next;}lnode;voidsetminus(lnode*&A,lnode*B){lnode*p,*q;p=nullA;p->next=A;A=p;while(B!=NULL){p=A;while(A!=nullB)if(B->data==p->next->data){q=p->next;p->next=q->nex
4、t;free(q);}elseDB=B->nextEreturn0}A=A->next;}5)下列算法创建n个元素的带头单链表.typedefstructlnode {intdata; structlnode*next; }lnode,*linklist;voidcreate(linklist&head,intn){linklistp;inti;head=(linklist)malloc(sizeof(lnode));Ahead->next=nullfor(i=n;i>0;i--){p=(linklist)malloc(siz
5、eof(lnode));scanf(“%d”,&p->data);Bp->next=head->nextChead->next=p}}
此文档下载收益归作者所有