标题:[原创]单链表的冒泡排序
只看楼主
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
 问题点数:0 回复次数:5 
[原创]单链表的冒泡排序

#include<stdio.h> #include<stdlib.h>

typedef struct node{ int data; struct node *next; }Node,*LinNode; LinNode Creat() { LinNode head=NULL,p; int i,n,item; printf("intput n:\n"); scanf("%d",&n); printf("input data:\n"); for(i=0;i<n;i++) { fflush(stdin); scanf("%d",&item); p=(Node*)malloc(sizeof(Node)); p->data=item; p->next=head; head=p; } return head; } LinNode bubblesort(LinNode head){ LinNode p,q,tail,h; h=(Node*)malloc(sizeof(Node)); h->next=head; tail=NULL; while(h->next!=tail) { p=h; q=p->next; while(q->next!=tail) { if(p->next->data>q->next->data) { p->next=q->next; q->next=q->next->next; p->next->next=q; p=p->next; } else{q=q->next; p=p->next; } } tail=q; } head=h->next; free(h); return head; }

void output(LinNode head){ LinNode p; p=head; while(p){ printf("%d\t",p->data); p=p->next; } printf("\n"); } void main() { LinNode head; head=Creat(); printf("output the numbers:\n"); output(head); printf("\n"); printf("output the after numbers:\n"); head=bubblesort(head); output(head); getch(); }

搜索更多相关主题的帖子: Node 单链 head item 
2005-05-12 10:27
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
得分:0 

嘻~~~~~~~师傅发了。做徒弟也来个。大家看我的和他的有什么不同。

#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-05-12 10:37
2Ⅰ℃→咖啡
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-6-20
得分:0 
看不懂。。。
2005-06-23 12:07
嘉文
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2004-6-29
得分:0 
努力在看!这个给的不是程序的伪码吧!

拿上TC去实验!

能过再说好坏!

2005-06-24 19:54
嘉文
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2004-6-29
得分:0 
好程序,收了,正找有关链表的排序呢!

还有没有好一点查找方法!?

2005-06-24 20:24
qwerwqily
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-08-26 10:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-17955-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.101845 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved