- // LinkSort2.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- struct Node
- {
- int data;
- struct Node* next;
- };
- Node* createLink(int a[],int len)
- {
- Node* head,*p,*q;
- p=new Node();
- p->data=a[0];
- head=p;
- for (int i=1;i<len;i++)
- {
- q=new Node();
- q->data=a[i];
- p->next=q;
- p=q;
- }
- p->next=NULL;
- return head;
- }
- void printfLink(Node* head)
- {
- while (head)
- {
- cout<<head->data<<" ";
- head=head->next;
- }
- cout<<endl;
- }
- Node* paixu(Node* head)
- {
- Node *p,*q;
- int temp;
- q=head;
- while(q->next!=NULL)
- {
- p=head;
- while(p->next!=NULL) //这个判断有冗余,待改进
- {
- if (p->data > p->next->data) //交换数值
- {
- temp=p->data;
- p->data=p->next->data;
- p->next->data=temp;
- }
- p=p->next;
- }
- q=q->next;
- }
- return head;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- int a[]={3,5,6,2,1,8,-1,-3,4};
- int len=sizeof(a)/sizeof(int);
- Node* head=createLink(a,len);
- //sortLink(head);
- printfLink(paixu(head));
- system("pause");
- return 0;
- }