/*
16.试设计一个算法,
使得在一个有序的单链表中插入一个元素后仍然有序。
*/

# include <iostream>
# include <stdlib.h>
# include <stdio.h>
using namespace std;typedef struct Node
{int elem;struct  Node *next;
}*linklist;void inlinklist(linklist &l, int n)
{l = (linklist) malloc (sizeof(Node));l->next = NULL;linklist p, end;end = l;printf("请输入链表中的元素:\n");for(int i = 0; i<n; i++){p = (linklist) malloc(sizeof(Node));scanf("%d", &p->elem);end->next = p;p->next = NULL;end = p;}
}void outlinklist(linklist l)
{printf("链表中的元素为:\n");linklist p;p = l->next;while(p){printf("%d ", p->elem);p = p->next;}printf("\n");
}void insertlinklist(linklist &l, int x)
{linklist p, q, s;s = l;p = s->next;while(p && p->elem < x){s = p;p = p->next;}//将x插入到s和p之间q = (linklist) malloc (sizeof(Node));q->elem = x;q->next = p;s->next = q;
}int main()
{int n, x;linklist l;printf("请输入链表元素个数:\n");scanf("%d", &n);inlinklist(l, n);printf("请输入要插入的元素的值:\n");scanf("%d", &x);insertlinklist(l, x);outlinklist(l);return 0;
}

数据结构例16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序。相关推荐

  1. 【 C 】在单链表中插入一个新节点的尝试(一)

    根据<C和指针>中讲解链表的知识,记录最终写一个在单链表中插入一个新节点的函数的过程,这个分析过程十分的有趣,准备了两篇博文,用于记录这个过程. 链表是以结构体和指针为基础的,所以结构体和 ...

  2. 【 C 】在单链表中插入一个新节点的尝试(二)

    在上篇博文中:[ C ]在单链表中插入一个新节点的尝试(一),我们最后提到了如果向单链表的开头(起始位置)插入一个节点,上篇博文中给出的程序显然完成不了这任务. 这篇博文中,我们将解决这个问题,给出一 ...

  3. 【 C 】在双链表中插入一个新值的简明程序

    上两篇博文讲了如何在单链表中插入一个值: [ C ]在单链表中插入一个新节点的尝试(一) [ C ]在单链表中插入一个新节点的尝试(二) 这篇博文讲解如何在双链表中插入一个值. 单链表的替代方案就是双 ...

  4. 设计一个算法,借助栈实现单链表链接顺序的逆转

    设计一个算法,借助栈实现单链表链接顺序的逆转: 程序思路:题目要求为借助栈将单链表中的数据逆置输出,栈的特点就是先进后出,只 需要将单链表中的数据依次存储在栈中,然后将栈中的元素依次取出即可.关键代码 ...

  5. java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

    转载请注明出处:http://blog.csdn.net/xdz78 #include #include //查找单链表中的特定元素,<数据结构与算法--c语言描述> 3.11 答案 in ...

  6. 【 C 】简化双链表插入函数(对在双链表中插入一个新值的简明程序的简化)

    目录 背景 第一个技巧是语句提炼(statement factoring) 第二个简化技巧 最终简化版本 背景 上篇博文:[ C ]在双链表中插入一个新值的简明程序,讲了一个简明的双链表插入函数,那个 ...

  7. 【数据结构】判断一个单链表中各结点的值是否有序

    count记录的是单链表的总长 count1记录的是升序的结点的个数 count2记录的是降序的结点的个数 如果count1或者count2等于count,那么就说明该序列是升序或者降序的. 稍加改进 ...

  8. 链表相关操作:创建链表、遍历链表、求链表长度、链表中删除一个节点、链表中插入一个节点、反转单链表...

    1 #include<iostream> 2 #include<stdlib.h> 3 4 typedef struct node 5 { 6 int data; 7 stru ...

  9. Java数据结构与算法———(10)单链表应用实例,找到单链表中倒数第K个节点

    找到单链表中的倒数第K个节点,并打印输出节点.两段代码,思路都是相似的. 一.代码1 public class SingleLinkedListDemo {public static void mai ...

最新文章

  1. 快速目标检测--YOLO-LITE: A Real-Time Object Detection Algorithm Optimized for Non-GPU Computers
  2. Linux下使用Vi是方向键变乱码 退格键不能使用的解决方法
  3. mysql5.7主从同步与读写分离
  4. Hibernate中使用Criteria查询及注解——(Emp.java)
  5. 什么是压缩感知?[简单概括]
  6. 论坛分页频繁更新帖子缓存_如何实现频繁更改内容的“可缓存”分页
  7. server安装 sql 发生mof语法错误_WIN7系统无法安装server2008R2,提示语法MOF错误
  8. maven生成jar包
  9. 你真的知道 Python 字符串怎么用吗?
  10. mysql故障转移,MySQL之MHA故障转移
  11. python工资一般多少p-5万的工资,用Python算一算少交多少税?
  12. GDI+中发生一般性错误 Winform Image.Save(mstream, ImageFormat.Png)引发
  13. JavaScript网页开发--三.CSS(级联样式表)
  14. 自回归模型(AR Model)
  15. 【破解】百度网盘不限速(亲测可用)
  16. Linq之IQueryable与IEnumerable
  17. vue3学习全部笔记
  18. bootstrap-table固定表头固定列
  19. 王兴在这个被互联网遗忘的网站上,留下了一万多条碎碎念。
  20. css3实现两端对齐

热门文章

  1. android启动百度地图应用并开始导航,android打开外部地图导航(百度、高德、腾讯)...
  2. 同向放大器、反向放大器的区别
  3. 学习笔记2 - 利用元数据管理数据质量
  4. Python:seaborn的散点图矩阵(Pairs Plots)可视化数据
  5. 好用的日历 android,手机日历软件哪个最好用?日历app排行榜(10款)
  6. 19.Eager模式
  7. Kotlin - 改良策略模式
  8. (牛客每日一题)[SHOI2008]小约翰的游戏JOHN(Anti-Nim)
  9. 和Leo一起做爱线段树的好孩子HDU5238 Calculator
  10. gddr6速率_美光GDDR6内存可上20Gbps,带宽堪比HBM 2显存