递增有序的单链表怎么实现

如题所述

第1个回答  2016-09-16
voidPrintList(LinkListL){ListNode*p;p=L->next;/*指向第一个结点*/while(p!=NULL)/*不空时一直循环*/{printf("%c",p->data);/*打印结点的数值*/p=p->next;/*指针后移一结点*/}printf("\n");/*另起一行显示*/}voidInsertList(LinkListhead,DataTypex){ListNode*p,*q,*s;/*q前面结点地址,p后面结点地址,新建结点地址*/inti,j=1;p=head;/*p指向头结点*/s=(ListNode*)malloc(sizeof(ListNode));/*创建新节点,用s指示*/s->data=x;/*给新建结点赋值*/for(i=1;x>=p->next->data;i++)/*循环,找第一个大于新结点的结点*/{p=p->next;/*循环指针后移循环结束时,i记录第一个大于新结点的结点序号*/}p=head;/*p重新指向头结点*/while(jnext;/*用q记录前驱,p记录后继*/j++;/*改变循环变量*/}s->next=q->next;/*把比新结点大的第一个结点连在新结点后*/q->next=s;/*把新结点连在比它小的最后一个结点后*/}本回答被网友采纳
相似回答