程序员面试题目总结--链表(6)【单链表排序】

来源:互联网 发布:数据库系统全书 豆瓣 编辑:程序博客网 时间:2024/05/18 02:12

6、单链表排序

题目:单链表排序

分析:冒泡排序

//单链表排序#include<iostream>using namespace std;typedef struct node{int data;node *next;}linklist;linklist *head=NULL;//创建链表linklist* CreateList(int* arr,int len){int data;linklist* pCur,* pRear;head=(linklist*)malloc(sizeof(linklist));pRear=head;int count=0;while(count<len){pCur=(linklist*)malloc(sizeof(linklist));pCur->data=arr[count];pRear->next=pCur;pRear=pCur;count++;}pRear->next=NULL;return head;}//显示链表void ShowList(linklist* p){while(p){cout<<p->data <<' ';p=p->next;}cout << endl;}//链表冒泡排序void BubbleSortList(linklist* p){linklist* pTemp;linklist* pNode;for(pTemp=p->next;pTemp->next;pTemp=pTemp->next){for(pNode=p->next;pNode->next;pNode=pNode->next){if(pNode->data > pNode->next->data){swap(pNode->data,pNode->next->data);}}}}int main(){int a[]={3,4,5,1,2,-1,7};CreateList(a,sizeof(a)/sizeof(a[0]));BubbleSortList(head);ShowList(head->next);return 0;}


0 0
原创粉丝点击