代码如下:
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<time.h>
#define N 10
#include<string.h>
struct list
{
int data;
struct list *next;
}*head=NULL,*end=NULL;
list* insert(int data)
{
list*h1=(list*)malloc(sizeof(struct list));
if(head==NULL)
{h1->data=data;
h1->next=NULL;
end=h1;
head=h1;
return end;}
list*h2=head;
if(h2->data >= data){h1->data=data;h1->next=h2;head=h1;return end;}
h2=end;
if(h2->data <= data){h1->data=data;h2->next=h1;end=h1;h1->next=NULL;return end;}
h2=head;
while(h2->next->next!=NULL){if(data>=h2->data && data<=h2->next->data)break;h2=h2->next;}
h1->next=h2->next;
h2->next=h1;
h1->data=data;
return end;
}
void display()
{list*h1=head;
while(h1->next!=NULL){printf("%d\t",h1->data);h1=h1->next;}printf("%d\t",h1->data);
}
int main(int argc, char* argv[])
{
int j;
srand(time(NULL));
for(int i = 0; i < N; i ++)
{
j=rand()/100;
printf("%d\t", j);
insert(j);
}
putchar('\n');
display();
return 0;
}