c语言 链表_C语言编程第22讲——单向有序链表的C语言实现
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语言实现相关推荐
- java long类型赋值_Java语言编程第22讲——如何理解“Java是强类型语言”
强类型语言,即Strongly Typed Language,从字面上理解,就是Java语言对类型要求很严格. Java语言对类型要求有哪些呢? 1.变量必须先声明类型,然后使用 例如: int i; ...
- 链表面试题3:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成 的。
链表面试题3:将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成 的. 首先我们的思想是将得一个链表和第二个链表的每个结点进行比较,谁小谁就插入到新链表的最后. ...
- python创建一个有序链表_Python实现单向有序链表(Singly linked list)
概念介绍 上一博文已经介绍了Python实现单向无序链表的实现方式,这篇博文来介绍Python如何实现单向有序链表.有序和无序仅仅指节点所包含的数据成员的大小排列顺序,有序指各个节点按照节点数据成员的 ...
- python基于c语言开发_C高级编程:基于模块化设计思想的C语言开发 PDF 超清版
给大家带来的一篇关于C语言相关的电子书资源,介绍了关于C高级编程.模块化.设计思想.C语言开发方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小80 MB,吉星编写,目前豆瓣.亚马逊.当当 ...
- java从尾到头打印链表数据_Java编程实现从尾到头打印链表代码实例
问题描述:输入一个链表的头结点,从尾巴到头反过来打印出每个结点的值. 首先定义链表结点 public class ListNode { int val; ListNode next = null; L ...
- c++链表形参丢失_LeetCode 例题精讲 | 01 反转链表:如何轻松重构链表
本期例题:LeetCode 206 - Reverse Linked List(Easy) 反转一个单链表.示例: 输入: 1->2->3->4->5->NULL 输出: ...
- halcon C++编程 第22讲 图像镜像 tcy
用途:本文利用矩阵乘法实现图像的镜像包括沿x,y轴及对角线实现镜像 注意:镜像点的选取:以三角形为例 水平或垂直线中心坐标或水平垂直线的交点坐标原理:*[1 0 Px] [M M 0] [1 0 -P ...
- 合并k个有序链表 python_leetcode第23题-合并K个有序链表
题目: 合并 k个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例:输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1- ...
- 贪吃蛇统计分数的c语言代码,C/C++编程笔记:C语言贪吃蛇源代码控制台(二),分数和食物!...
接上文<C/C++编程笔记:C语言贪吃蛇源代码控制台(一),会动的那种哦!>如果你在学习C语言开发贪吃蛇的话,零基础建议从上一篇开始哦!接下来正式开始吧! 三.蛇的运动 上次我已经教大家画 ...
最新文章
- php点号的意思,[PHP] - 逗号和点号的区别
- dispatch_queue_create(com.biostime.xxx, DISPATCH_QUEUE_SERIAL)的陷阱
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20170402
- 在一台服务器上配置多个Tomcat的方法
- ConsurrentDictionary并发字典知多少?
- MyBatis 级联
- mac obs 录屏黑屏_差点被录屏软件搞死.......
- CF1062E Company
- MySQL分页查询方法及优化
- Mutable和Immutable
- java推箱子游戏源代码_java实现推箱子小游戏(附源码)
- Xmind 2022精彩体验---什么叫流程图
- RHadoop的安装与试验
- 个人商业画布分析-0408-v1.0王玉娟
- Python打包为exe文件
- 【python gensim使用】word2vec词向量处理英文语料
- k43.第十七章 K8s运维篇-DevOps 持续集成 持续部署 (三)
- python语言的实验心得体会范文_关于实验的心得体会范文5篇
- Java 8 Stream流的常见操作
- 使用python输出星号阵列