2121 数据结构实验之链表六:有序链表的建立
2017-09-29 14:55
288 查看
数据结构实验之链表六:有序链表的建立
Time Limit: 1000MSMemory Limit: 65536KB
Problem Description
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。Input
第一行输入整数个数N;第二行输入N个无序的整数。
Output
依次输出有序链表的结点值。Example Input
6 33 6 22 9 44 5
Example Output
5 6 9 22 33 44
Hint
不得使用数组!#include <bits/stdc++.h> using namespace std; typedef struct node { int date; struct node *next; }Lnode; Lnode *creat(int n)//建表 排序 { Lnode *head, *p, *q, *r; head = new node; head ->next = NULL; p = new node; p ->next = NULL; cin >> p->date; head -> next = p; //输入首元素用于后面元素的判断 for(int i = 1; i < n; i++) { bool flag = 1; p = new node; p ->next = NULL; r = head; q = head->next; cin >> p ->date; while(q->next) //除最后一个外,判值 { if(p->date <= q -> date) { r -> next = p; p -> next = q; flag = 0;break; } else { r = r -> next; q = q -> next; } } if(flag) //对最后一个判断 { if(p->date>=q->date) { q -> next = p; } else { r -> next = p; p -> next = q; } } } return head; } void output(Lnode *head)//输出 { Lnode *q; cout << head -> next -> date; q = head->next; while(q->next) { q = q->next; cout << " " << q->date; } cout << endl; } int main() { int n; Lnode *head; cin >> n; head = creat(n);//建表 排序 output(head); return 0; }
相关文章推荐
- SDUT2121数据结构实验之链表六:有序链表的建立
- SDUTOJ 2121 数据结构实验之链表六:有序链表的建立
- [SDUT](2121)数据结构实验之链表六:有序链表的建立
- 2121-数据结构实验之链表六:有序链表的建立
- SDUT 2121 数据结构实验之链表六:有序链表的建立
- 2121 数据结构实验之链表六:有序链表的建立 【纯插排】
- 山东理工OJ【2121】数据结构实验之链表六:有序链表的建立(插排法)
- 山东理工OJ【2121】数据结构实验之链表六:有序链表的建立(插排法)
- SDUT 2121 数据结构实验之链表六:有序链表的建立
- SDUT_2121数据结构实验之链表六:有序链表的建立 (对建立的单项链表结构进行排序)
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立(C语言)
- SDUT OJ 数据结构实验之链表六:有序链表的建立
- SDUT OJ 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 寒假第二天--线性表-- 数据结构实验之链表六:有序链表的建立