SortList

来源:互联网 发布:c语言的书哪本比较好 编辑:程序博客网 时间:2024/06/06 01:03
// sortList.cpp : Defines the entry point for the console application.//#include "stdafx.h"typedef struct List{int data;List* pNext; List(int data) { this->data=data; pNext=NULL; } List(List* pOther) { this->data=pOther->data; pNext=NULL; }List * InsertAfterMe(List*  node){List * MyOldNext=this->pNext;this->pNext=node;if(node)node->pNext=MyOldNext;return node;}}List,*PList;PList InitList(){PList pHead=new List(-1);pHead->pNext=NULL;return pHead;}PList AppendList(PList pHead,List*  node){if (!node)return pHead;PList walker=pHead;while(walker->pNext){walker=walker->pNext;}walker->InsertAfterMe(node);return  pHead;}void TraverseList(PList pHead){//,List*  node//if (!node)return pHead;PList walker=pHead;while(walker->pNext){walker=walker->pNext;printf("%d ",walker->data);}//walker->InsertAfterMe(node);//return  pHead;printf("\n");}PList InsertNodeOrderly(PList pHead,PList node){PList walker=pHead;while( walker->pNext && node->data>walker->pNext->data ){walker=walker->pNext;}walker->InsertAfterMe(node);return  pHead;}PList SortList(PList pHead)//有点儿模仿插入排序{PList walker=pHead->pNext;pHead->pNext=NULL;PList walkerNext;while(walker){walkerNext=walker->pNext;InsertNodeOrderly(pHead,walker);walker=walkerNext;//printf("%d ",walker->data);}return pHead;//walker->InsertAfterMe(node);//return  pHead;//printf("\n");}PList SortListNew(PList pHead)//有点儿模仿插入排序{PList pHeadNew=InitList();PList walker=pHead;//PList walkerNew=pHeadNew;while(walker->pNext){walker=walker->pNext;InsertNodeOrderly(pHeadNew,new List(walker));//printf("%d ",walker->data);}return pHeadNew;//walker->InsertAfterMe(node);//return  pHead;//printf("\n");}int main(int argc, char* argv[]){PList pHead=InitList();PList tmp=pHead->InsertAfterMe(new List(1));tmp=tmp->InsertAfterMe(new List(3));tmp=tmp->InsertAfterMe(new List(5));tmp=tmp->InsertAfterMe(new List(2));tmp=tmp->InsertAfterMe(new List(6));tmp=tmp->InsertAfterMe(new List(4));TraverseList(pHead);PList pHeadNew=SortListNew(pHead);TraverseList(pHeadNew);SortList(pHead);TraverseList(pHead);printf("Hello World!\n");return 0;}/*1 3 5 2 6 41 2 3 4 5 61 2 3 4 5 6Hello World!Press any key to continue*/

原创粉丝点击