数据结构实验之链表六:有序链表的建立
2016-07-29 09:50
267 查看
数据结构实验之链表六:有序链表的建立
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。
输入
第一行输入整数个数N;第二行输入N个无序的整数。
输出
依次输出有序链表的结点值。
示例输入
6 33 6 22 9 44 5
示例输出
5 6 9 22 33 44
提示
不得使用数组!这道题是就是链表的排序,方法很多。由于没有时间限制,这里就采用简单的冒泡排序。
#include<stdio.h> #include<iostream> using namespace std; int n; struct node { int d; node *next; }; node *CreatList(int n) //顺序建表 { node *head=new node; head->next=NULL; node *tail=head; for(int i=0; i<n; i++) { node *p=new node ; cin>>p->d; tail->next=p; tail=p; } tail->next=NULL; return head; } node *SortList(node *head) { for(node *p=head->next; p!=NULL; p=p->next) for(node *q=p->next; q!=NULL; q=q->next) { if(p->d>q->d) { int t=p->d; p->d=q->d; q->d=t; } } return head; } void PrintList(node *head) //输出链表 { node *p=head->next; while(p!=NULL) { if(p->next==NULL) cout<<p->d<<endl; else cout<<p->d<<" "; p=p->next; } } int main() { cin>>n; node *head=NULL; head=CreatList(n); head=SortList(head); PrintList(head); return 0; }
相关文章推荐
- 数据结构实验之链表六:有序链表的建立(C语言)
- <sdut-ACM>数据结构实验之链表六:有序链表的建立
- SDUT_2121数据结构实验之链表六:有序链表的建立 (对建立的单项链表结构进行排序)
- 2121-数据结构实验之链表六:有序链表的建立
- 山东理工OJ【2121】数据结构实验之链表六:有序链表的建立(插排法)
- SDUT OJ 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- SDUTOJ 2121 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 2121 数据结构实验之链表六:有序链表的建立 【纯插排】
- SDUT 2121 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- SDUT 2121 数据结构实验之链表六:有序链表的建立
- SDUT2121数据结构实验之链表六:有序链表的建立