单链表排序

发布时间:2016-12-9 16:08:26 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"单链表排序",主要涉及到单链表排序方面的内容,对于单链表排序感兴趣的同学可以参考一下。

#include <iostream> using namespace std; typedef struct Node { int val; Node *next; }LST; LST *mycreat(int n) { LST *head=NULL,*p=NULL,*sec=NULL; head=(LST*)malloc(sizeof(LST)); p=head; while(n--) { int v; scanf("%d",&v); sec=(LST*)malloc(sizeof(LST)); sec->val=v; p->next=sec; p=sec; } p->next=NULL; return head; } LST *mysort(LST *head) { LST *p=NULL,*q=NULL,*t=NULL; p=head->next; while(p->next!=NULL) { t=p->next; while(t!=NULL) { if (t->val<p->val) { int temp=t->val; t->val=p->val; p->val=temp; } t=t->next; } p=p->next; } return head; } int myrank(LST *head,int m) { int c=0; LST *p=NULL; p=head->next; while(p!=NULL) { if(p->val==m) break; c++; p=p->next; } return c; } void myprint(LST *head) { int f=0; LST *p=NULL; p=head->next; while(p!=NULL) { if(f==0) printf("%d",p->val); else printf(" %d",p->val); p=p->next; f++; } printf("\n"); return ; } int main() { int n,m; while(~scanf("%d%d",&n,&m)) { LST *head=NULL; head=mycreat(n); head=mysort(head); int no=myrank(head,m); printf("%d\n",no+1); myprint(head); } return 0; }

上一篇:单链表连续删除
下一篇:十八个最常用的学术搜索引擎【转载】

相关文章

关键词: 单链表排序

相关评论