数据结构实验之链表六:有序链表的建立

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。

Input

第一行输入整数个数N;

第二行输入N个无序的整数。

Output

依次输出有序链表的结点值。

Sample Input

6

33 6 22 9 44 5

Sample Output

5 6 9 22 33 44

Hint

不得使用数组!

链表的插入操作,找到链表中第一大于或等于x的节点,将x插入该节点之前就好,注意考虑链表中没有大于x的节点的时候。

#include <stdio.h>
#include <string.h>
#include <stdlib.h> typedef struct node
{
int data;
struct node *next;
}link; link *newlink()
{
link *t;
t = (link*)malloc(sizeof(link));
t->next = NULL;
return t;
} link *insert(link *head,int x)
{
link *p,*q,*r;
r = newlink();
r->data = x;
p = head;
while(p->next)
{
q = p->next;
if(q->data>=x)
{
r->next = p->next;
p->next = r;
return head;
}
p = p->next;
}
r->next = p->next;
p->next = r;
return head;
} void show(link *head)
{
link *p;
p = head->next;
while(p)
{
if(p->next==NULL)
printf("%d\n",p->data);
else
printf("%d ",p->data);
p = p->next;
}
} int main()
{
link *head;
int n,i,x;
scanf("%d",&n);
head = newlink();
for(i=0;i<n;i++)
{
scanf("%d",&x);
head = insert(head,x);
}
show(head);
return 0;
}

最新文章

  1. Git Learning - By reading ProGit
  2. 课程作业01:模仿JavaAppArguments.java示例,编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。
  3. 【转】Xcode概览:调试应用程序
  4. Python基础-day2
  5. 007商城项目:商品列表查询-需求分析,以及Spinmvc的访问知识
  6. [转] MovieClip转Bitmap方法
  7. iOS企业级开发
  8. 自己的php函数库
  9. DrawDib函数组的使用
  10. Linux同步时间命令ntpdate
  11. Poetize4 创世纪
  12. WinForm 控件不闪烁
  13. More is better(并差集)
  14. Django 基础知识
  15. jQuery(function(){...})与(function($){...})(jQuery)的“兄弟”情结
  16. RAC节点两边存储名字不一致导致的故障及相关延伸
  17. 使用javaMail实现简单邮件发送
  18. 如何给小学生讲清楚ECC椭圆曲线加密
  19. NoHttp封装--07 自定义异步任务框架
  20. 吴恩达课后作业学习1-week2-homework-logistic

热门文章

  1. 通过游戏学python 3.6 第一季 第一章 实例项目 猜数字游戏--核心代码 可复制直接使用 娱乐 可封装 函数
  2. leetcode 492-543 easy
  3. wpf绑定元素属性
  4. Django项目:CRM(客户关系管理系统)--03--02PerfectCRM创建ADMIN页面01
  5. GCC/GDB学习
  6. Java1.8新特性 - Stream流式算法
  7. 一眼看穿&#128064;JS基本概念
  8. echarts radar 一些会用到了的功能记录
  9. 一键制作启动elasticsearch和kibana启动的脚本可执行程序
  10. ubuntu更新问题