欢迎来到天天文库
浏览记录
ID:51776935
大小:33.00 KB
页数:8页
时间:2020-03-15
《线性表算法答案数据结构.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构复习题答案:线性表算法分析题1、答:voidinsert(sqlist&L,ElemTypex){inti=0,j;while(i=i;j--)L.data[j+1]=L.data[j];L.data[i]=x;L.Length++;}2、voiddelnode(SqList&A,ElemTypeitem){intk=0,i=0;while(i2、em)k++;elseA.data[i-k]=A.data[i];i++;}A.length=A.length-k}3、4、intListlant(Salist&L,ElemTypee){/*带有头结点*/p=head;intn=0;while(p!=NULL){if(p->next->data==x)n++;p=p-.next;}returnn;}5、voidDelnodes(LinkList*&L,ElemTypemink,ElemTypemaxk){LinkList*p=head->nex3、t;While(p!=null&&p->datanext;}q=p;//求值域刚好>minwhile(q!=null&&q->data>maxk)//求值域刚好next;r->next=q->next;while(r!=q){r=p->next;free(p);p=r;}free(q);}6、voidDels(LinkList*&head){p=head,q=head->next;while(q->next!=null){4、if(p->next->data>q->next->data)p=q;q=q->next;}p->next=p->next->next;}7、voidReverse(LinkList*&head){p=head;q=p->next;//q指向p的后继结点,仅为当前结点if(q=null)return(p);//仅有一个结点p->next=null;//原链表的首结点位新链表的尾结点if(q->next==null)//仅有两个结点{q->next=p;return(q);}r=q->next;w5、hile(r->next!=null){q->next=p;//实现逆置p=q;q=r;r=r->next;}q->next=p;return(r);}8、TypedefElemtypeint;TypedefstructLnode{Elemtypedata;StructLNode*next;}Lnode,*LinkList;#includeLinkListcreatlist(){//建立单链表LinkListhead,r,s;ElemTypex;head=(LinkList)m6、alloc(sizeof(LNode));//建立单链表头结点r=head;printf(“输入系列整数,0标志结束”);scanf(“&d”,&x);while(x){//x=0则退出while循环s=(LinkList)mslloc(sizeof(LNode));s->data=x;r->next=s;r=s;scanf(“%d”,&x);)//whiler->next=NULL;s=head;//删除头结点head=head->next;free(s);return(head);}st7、atusListFind(LinkListL,Elemtypee){//查找元素eLinkListp;p=L;while(p&&p->data!=e)p=p->next;If(p)returnFALSE;elsereturnTRUE;}voidLis9、TypedefElemtypeint;TypedefstructLnode{Elemtypedata;StructLNode*next;}Lnode,*LinkList;voidMergeList(LinkListHa,LinkListHb,Li8、nkList&Hc){LinkListp,q,r,s;Hc=(LinkList)malloc(sizeof(Lnode));r=Hc;p=Ha;q=Hb;while(p&&q){s=(LinkList)malloc(sizeof(Lnode));r->next=s;r=s;if(p->datadata){s->data=p->data;p=p->next;}elseif(p->datadata){s->data=q->data;q=q->next;}else{s->data=p-
2、em)k++;elseA.data[i-k]=A.data[i];i++;}A.length=A.length-k}3、4、intListlant(Salist&L,ElemTypee){/*带有头结点*/p=head;intn=0;while(p!=NULL){if(p->next->data==x)n++;p=p-.next;}returnn;}5、voidDelnodes(LinkList*&L,ElemTypemink,ElemTypemaxk){LinkList*p=head->nex
3、t;While(p!=null&&p->datanext;}q=p;//求值域刚好>minwhile(q!=null&&q->data>maxk)//求值域刚好next;r->next=q->next;while(r!=q){r=p->next;free(p);p=r;}free(q);}6、voidDels(LinkList*&head){p=head,q=head->next;while(q->next!=null){
4、if(p->next->data>q->next->data)p=q;q=q->next;}p->next=p->next->next;}7、voidReverse(LinkList*&head){p=head;q=p->next;//q指向p的后继结点,仅为当前结点if(q=null)return(p);//仅有一个结点p->next=null;//原链表的首结点位新链表的尾结点if(q->next==null)//仅有两个结点{q->next=p;return(q);}r=q->next;w
5、hile(r->next!=null){q->next=p;//实现逆置p=q;q=r;r=r->next;}q->next=p;return(r);}8、TypedefElemtypeint;TypedefstructLnode{Elemtypedata;StructLNode*next;}Lnode,*LinkList;#includeLinkListcreatlist(){//建立单链表LinkListhead,r,s;ElemTypex;head=(LinkList)m
6、alloc(sizeof(LNode));//建立单链表头结点r=head;printf(“输入系列整数,0标志结束”);scanf(“&d”,&x);while(x){//x=0则退出while循环s=(LinkList)mslloc(sizeof(LNode));s->data=x;r->next=s;r=s;scanf(“%d”,&x);)//whiler->next=NULL;s=head;//删除头结点head=head->next;free(s);return(head);}st
7、atusListFind(LinkListL,Elemtypee){//查找元素eLinkListp;p=L;while(p&&p->data!=e)p=p->next;If(p)returnFALSE;elsereturnTRUE;}voidLis9、TypedefElemtypeint;TypedefstructLnode{Elemtypedata;StructLNode*next;}Lnode,*LinkList;voidMergeList(LinkListHa,LinkListHb,Li
8、nkList&Hc){LinkListp,q,r,s;Hc=(LinkList)malloc(sizeof(Lnode));r=Hc;p=Ha;q=Hb;while(p&&q){s=(LinkList)malloc(sizeof(Lnode));r->next=s;r=s;if(p->datadata){s->data=p->data;p=p->next;}elseif(p->datadata){s->data=q->data;q=q->next;}else{s->data=p-
此文档下载收益归作者所有