1、单向有序链表的含义

单向有序链表可以解析为四个名词:

表:一组元素;

链表:表中的元素不是从前往后一个挨着一个,而是通过一个元素才能找到另一个元素;

单向:表中的元素只能从前往后访问;

有序:表中的元素按照一定的规则进行了排序。

2、数据结构定义

链的表示:虽然见过其它的方式,但C语言中,表示链的最好方式是指针;

元素:需要保存元素值,还要保存下一个元素的地址;

链表:由于单向链表是从前往后访问,所以链表可以认为就是一个指向元素的指针。

3、算法设计

插入元素:向链表中插入一个不存在的元素,如果已经存在,则给出提示;

删除元素:从链表中删除一个已有的元素,如果不存在,则给出提示;

显示链表:将链表内容显示出来;

4、代码实现

包含的头文件如下:

#include #include 

数据结构定义的代码如下:

struct TElement{    int m_iData;    struct TElement* m_pNextElement;};struct TElement* pLink = NULL;

定义了一个分配内存的函数,实现如下:

插入元素的函数实现如下:

删除元素的实现代码如下:

打印所有元素的函数实现如下:

main函数的代码:

int main(){    PrintLink(pLink);    InsertElement(&pLink, 98);    PrintLink(pLink);    DeleteElement(&pLink, 34);    PrintLink(pLink);    InsertElement(&pLink, 38);    InsertElement(&pLink, 78);    InsertElement(&pLink, 55);    InsertElement(&pLink, 55);    PrintLink(pLink);    DeleteElement(&pLink, 55);    PrintLink(pLink);}

程序运行情况如下:

[ ][ 98 ]Cannot find the data.[ 98 ]Find repetitive element.[ 38 55 78 98 ][ 38 78 98 ]

c语言 链表_C语言编程第22讲——单向有序链表的C语言实现相关推荐

  1. java long类型赋值_Java语言编程第22讲——如何理解“Java是强类型语言”

    强类型语言,即Strongly Typed Language,从字面上理解,就是Java语言对类型要求很严格. Java语言对类型要求有哪些呢? 1.变量必须先声明类型,然后使用 例如: int i; ...

  2. 链表面试题3:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成 的。

    链表面试题3:将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成 的. 首先我们的思想是将得一个链表和第二个链表的每个结点进行比较,谁小谁就插入到新链表的最后. ...

  3. python创建一个有序链表_Python实现单向有序链表(Singly linked list)

    概念介绍 上一博文已经介绍了Python实现单向无序链表的实现方式,这篇博文来介绍Python如何实现单向有序链表.有序和无序仅仅指节点所包含的数据成员的大小排列顺序,有序指各个节点按照节点数据成员的 ...

  4. python基于c语言开发_C高级编程:基于模块化设计思想的C语言开发 PDF 超清版

    给大家带来的一篇关于C语言相关的电子书资源,介绍了关于C高级编程.模块化.设计思想.C语言开发方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小80 MB,吉星编写,目前豆瓣.亚马逊.当当 ...

  5. java从尾到头打印链表数据_Java编程实现从尾到头打印链表代码实例

    问题描述:输入一个链表的头结点,从尾巴到头反过来打印出每个结点的值. 首先定义链表结点 public class ListNode { int val; ListNode next = null; L ...

  6. c++链表形参丢失_LeetCode 例题精讲 | 01 反转链表:如何轻松重构链表

    本期例题:LeetCode 206 - Reverse Linked List(Easy) 反转一个单链表.示例: 输入: 1->2->3->4->5->NULL 输出: ...

  7. halcon C++编程 第22讲 图像镜像 tcy

    用途:本文利用矩阵乘法实现图像的镜像包括沿x,y轴及对角线实现镜像 注意:镜像点的选取:以三角形为例 水平或垂直线中心坐标或水平垂直线的交点坐标原理:*[1 0 Px] [M M 0] [1 0 -P ...

  8. 合并k个有序链表 python_leetcode第23题-合并K个有序链表

    题目: 合并 k个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例:输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1- ...

  9. 贪吃蛇统计分数的c语言代码,C/C++编程笔记:C语言贪吃蛇源代码控制台(二),分数和食物!...

    接上文<C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!>如果你在学习C语言开发贪吃蛇的话,零基础建议从上一篇开始哦!接下来正式开始吧! 三.蛇的运动 上次我已经教大家画 ...

最新文章

  1. php点号的意思,[PHP] - 逗号和点号的区别
  2. dispatch_queue_create(com.biostime.xxx, DISPATCH_QUEUE_SERIAL)的陷阱
  3. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170402
  4. 在一台服务器上配置多个Tomcat的方法
  5. ConsurrentDictionary并发字典知多少?
  6. MyBatis 级联
  7. mac obs 录屏黑屏_差点被录屏软件搞死.......
  8. CF1062E Company
  9. MySQL分页查询方法及优化
  10. Mutable和Immutable
  11. java推箱子游戏源代码_java实现推箱子小游戏(附源码)
  12. Xmind 2022精彩体验---什么叫流程图
  13. RHadoop的安装与试验
  14. 个人商业画布分析-0408-v1.0王玉娟
  15. Python打包为exe文件
  16. 【python gensim使用】word2vec词向量处理英文语料
  17. k43.第十七章 K8s运维篇-DevOps 持续集成 持续部署 (三)
  18. python语言的实验心得体会范文_关于实验的心得体会范文5篇
  19. Java 8 Stream流的常见操作
  20. 使用python输出星号阵列

热门文章

  1. 程序员应该如何规划自己的人生与书写履历?
  2. ajax向后台传递数组
  3. css 汉字注音,日本语片假名
  4. 自定义scoll样式
  5. Membership学习(三)Membership Providers介绍[xgluxv]
  6. 八、VueJs 填坑日记之参数传递及内容页面的开发
  7. vue 后端返回二进制流文件,前端如何实现下载?
  8. java.lang.IllegalStateException: Connection pool shut down
  9. loadView的使用总结
  10. 通过setTimeout来取消因大量计算造成的网页卡顿