为什么得不到正确结果呢???
/* 在有序单链表中插入元素后仍然有序 */
#define ERROR 0
#define OK 1
#define NULL 0
#include<stdlib.h>
#include<stdio.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
void CreatList(LinkList *L,int n)
{
LinkList p;
int i;
L=(LinkList*)malloc(sizeof(LNode));
(*L)->next=NULL;
for(i=n;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=(*L)->next;(*L)->next=p;
}
}
int ListInsert_L(LinkList L,int e) {
LinkList p,s;
s=(LinkList)malloc(sizeof(LNode));
p=L;
while(p&&p->next->data<e)
p=p->next;
s->data=e;s->next=p->next;
p->next=s;
return OK;
}
void main()
{
LinkList h,s;
CreatList(&h,5);
ListInsert_L(h,4);
ListInsert_L(h,6);
s=h;
do{
printf("%3d\n",s->data);
s=s->next;
}while(s->next!=NULL);
}