#include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct node{ int data; struct node *next; }Node,*Linklist; Linklist createlist(int n) { Node *p,*q,*head; int i=0,x; head=(Node *)malloc(sizeof(Node)); head->next=NULL; q=head; printf("请输入排序的数字:\n"); for(i=0;i<n;i++) { scanf("%d",&x); p=(Node *)malloc(sizeof(Node)); p->data=x; p->next=NULL; q->next=p; q=p; p=NULL; } return head; } Linklist bubblesort(Linklist head) { Node *p,*q,*tail,*s; tail=NULL; while(head->next!=tail) { p=head; q=p->next; while(q->next!=tail) { if(p->next->data>q->next->data) { s=q->next; p->next=q->next; q->next=q->next->next; p->next->next=q; q=s; } p=p->next; q=q->next; } tail=q; } } void output(Linklist head) { Linklist p; p=head->next; while(p) {printf("%d\t",p->data); p=p->next; } } main() {int n; Node *head; printf("请问你要输入几个排序数:\n"); scanf("%d",&n); head=createlist(n); printf("排序前:\n"); output(head); bubblesort(head); printf("\n排序后:\n"); output(head);
}
[此贴子已经被作者于2005-5-12 10:21:57编辑过]