数据结构实验之链表六:有序链表的建立
来源:互联网 发布:vmware14运行ubuntu 编辑:程序博客网 时间:2024/06/03 21:09
Problem Description
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。
Input
第一行输入整数个数N;
第二行输入N个无序的整数。
第二行输入N个无序的整数。
Output
依次输出有序链表的结点值。
Example Input
633 6 22 9 44 5
Example Output
5 6 9 22 33 44
#include<iostream>#include<stdio.h>#include<string.h>#include<stdlib.h>using namespace std;typedef struct LNode{ int data; struct LNode *next;}LinkList;void CreateList(LinkList *&L,int n){ LinkList *r,*s; int i; int temp; L=(LinkList *)malloc(sizeof(LinkList )); r=L; for(i=0;i<n;i++) { scanf("%d",&temp); s=(LinkList *)malloc(sizeof(LinkList)); s->data=temp; r->next=s; r=s; } r->next=NULL;}void ListSort(LinkList *&L){ LinkList *p,*pre,*q; p=L->next->next;//p指向L的第二个数据节点 L->next->next=NULL;//构造只含一个数据节点的有序表 while(p!=NULL) { q=p->next;//q保存 *p节点后继节点的指针 pre=L;//从有序表开头进行比较,pre指向插入*p的钱去节点 while(pre->next!=NULL&&pre->next->data<p->data) pre=pre->next;//在有序表中找插入*p的前驱结点 *pre p->next=pre->next;//将 *pre 之后插入 *p pre->next=p; p=q;//扫描原单链表余下的节点 }}void DispList(LinkList *L){ LinkList *p; p=L->next; while(p!=NULL) { printf("%d",p->data); if(p->next!=NULL) printf(" "); else printf("\n"); p=p->next; }}int main(){ LinkList *L; int n; scanf("%d",&n); CreateList(L,n); ListSort(L); DispList(L); return 0;}
0 0
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- SDUToj2121数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- SDUT2121数据结构实验之链表六:有序链表的建立
- 数据结构实验之链表六:有序链表的建立
- 初识Spring Data与JPA Repository
- 我国关税
- NSUnknownKeyException
- SQL Server函数大全(三)----Union与Union All的区别
- 创建SessionFactory的方式
- 数据结构实验之链表六:有序链表的建立
- 使用Webpack打包单页应用的正确姿势
- ZCMU-1162-松哥的素数
- 改变ogg抽取进程检查点文件中的检查点
- 51Nod - 1127 尺取法
- OOTV 模式大赛
- 数据结构实验之栈六:下一较大值(二)
- Storm简介
- java微信抢红包简易版