
代码如下:

#include<iostream> #include<cstdlib> using namespace std; int num; typedef struct list { int data; struct list *next; }Lnode,*linklist; linklist Createlist(int n)//构建带头结点的链表 { linklist p, head,tail; head = (linklist)malloc(sizeof(Lnode)); tail = NULL; head->next = tail; for (int i = 0; i < n; i++) { p = (linklist)malloc(sizeof(Lnode)); cin >>p-> data; p->next = NULL; if (tail == NULL) head->next = p; else tail->next = p; tail=p; } return head;//返回头结点的地址 } void sortlist(linklist head)//对链表进行bubble sort { linklist pre, p,tail; tail = NULL; while (head->next != tail) { pre = head; p = head->next; while (p->next!=tail) { if (p->data > p->next->data) { pre->next = p->next; p->next = pre->next->next; pre->next->next = p; } else p = p->next; pre = pre->next; } tail = p; } } int main() { cin >> num; linklist head,x; head = Createlist(num); sortlist(head); x = head->next; while (x != NULL) { cout << x->data; x = x->next; } cout << endl; return 0; }

本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-135571-1.html
十年动乱时受的教育