#include<stdio.h>
#include<stdlib.h>
#include<time.h>
struct Node{
int Data;
struct Node *Next;
};
void Sq_insert(struct Node *L,int num){/*链表顺序插入*/
struct Node *p=L,*q;
while(p->Next!=NULL&&p->Next->Data<num)
p=p->Next;
q=(struct Node *)malloc(sizeof(struct Node));
q->Data=num;
q->Next=p->Next;
p->Next=q;
}
void show(struct Node *L){
struct Node *p;
p=L->Next;
while(p!=NULL){
printf("%d\t",p->Data);
p=p->Next;
}
printf("\n");
}
void reverse(struct Node *L){/*链表反转*/
struct Node *pre,*cur,*next;
pre=NULL;
cur=L->Next;
while(cur!=NULL){
next=cur->Next;
cur->Next=pre;
pre=cur;
cur=next;
}
L->Next=pre;
}
int main(){
struct Node *L=(struct Node *)malloc(sizeof(struct Node));
L->Next=NULL;
srand(time(NULL));/*随机数种子*/
int i;
for(i=0;i<10;i++){
Sq_insert(L,rand());/*生成随机数并插入*/
}
show(L);
reverse(L);
show(L);
return 0;
}