- 设C={a1,b1,a2,b2,…an,bn}为线性表,采用带头结点的hc单链表存放,设计一个就地算法,将其拆分为两个线性表,使得A={a1,a2,…,an},B={bn,…,b2,b1}
-
A={a1,a2,…,an},B={bn,…,b2,b1} typedef struct { Elementype data; LNode *next; }LNode,*LinkList; Void Split(LinkList &L){ A=(LinkList)malloc(sizeof(LNode));//A用尾插法 A->next=NULL; B= (LinkList)malloc(sizeof(LNode));//B用头插法 B->next==NULL; LNode *p=L,*a=A,*b=B,*q; int step=1; while(p->next!=NULL){ if(step%2!=0){ a->next=p->next; p=p->next->next;a=a->next; a->next=NULL;step++; }else{ q=p->next; p->next=b->next; b->next=p->next; p=q; step++; }//if }//while L->next=NULL; }
11.7 | 拆分单链表(不是单纯赋值&&表A尾插表B头插)
最新推荐文章于 2024-11-03 16:33:21 发布