2017-05-02
#include <stdio.h>
#include <malloc.h>
typedef struct Link{
int data;
struct Link *next;
}Node;
Node *insertNode(Node *head, int b)
{
Node *q1=NULL, *q2=NULL, *p=NULL;
q1=head;
p = (Node *)malloc(sizeof(Node));
p->data=b;
if(head==NULL)
{
head = p;
p->next=NULL;
}
else if(p->data < q1->data)
{
head = p;
p->next = q1;
}
else
{
while(q1!=NULL && q1->data < p->data)
{
q2 = q1;
q1 = q1->next;
}
p->next = q2->next;
q2->next = p;
}
return head;
}
void traverse(Node *head)
{
Node *p=NULL;
p=head;
do{
printf("%-5d", p->data);
p=p->next;
}while(p!=NULL);
printf("\n");
}
void main()
{
int i=0;
Node *head = NULL;
int a[] = {78, 69, 98, 27, 36};
for(i=0; i<5; i++)
{
head = insertNode(head, a[i]);
}
traverse(head);//遍历有序链表
}