带头结点的单链表L,设计一个算法使其元素递增
总结
先构成只含一个数据结点的有序单链表,然后以此扫描单链表中剩下的结点p(直至p==NULL为止),在有序表中通过比较查找插入P的前驱结点pre,然后将p插入到pre之后。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <iostream> using namespace std; typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList;
void Sort(LinkList &L){ LNode *p=L->next,*pre; LNode *r=p->next; p->next=NULL; p=r; while(p!=NULL){ r=p->next; pre=L; while(pre->next!=NULL&&pre->next->data<p->data){ pre=pre->next; } p->next=pre->next; pre->next=p; p=r; } }
|