文档章节

数据结构之单链表-c语言实现

无心的梦呓
 无心的梦呓
发布于 01/28 22:31
字数 610
阅读 156
收藏 0

3 月,跳不动了?>>>

文章来源:http://blog.seclibs.com/%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%e4%b9%8b%e5%8d%95%e9%93%be%e8%a1%a8-c%e8%af%ad%e8%a8%80%e5%ae%9e%e7%8e%b0/

常用的链表有单链表、双向链表和循环链表,这次只完成了单链表的c语言实现,在写代码中所遇到的问题在代码注释中也都有标注,在实现上最关键的还是对整体结构的理解,只有对整体结构有一定的了解,才能在具体的代码实现中少走很多的弯路,在具体的代码实现过程中,要着重关注每一个变量的内容和具体的含义,只有搞清楚了这一点才能在实现的时候不出现一些莫名其妙的问题。

比如在这次实现中,就碰到了在插入初始插入数据的时候,输出的内容一直与插入时相反,也就是说,起初预想的是每次插入数据都是在最后一位进行插入,而实际情况是从开头进行插入的,在仔细研究完代码后,发现了问题所在

我们在第一次插入数据的时候,情况是这样的

但是如果再继续往后面插入的时候,由于list所指的内存地址并没有改变,所以插入的情况是这样的

就造成了输出与输入呈倒序的方式,所以只需要将list所指向的内存地址进行变化就可以了,修改后的代码如下

所以对每个变量所代表的含义要特别清楚才能在代码实现的时候更加的清晰。

整体代码如下,如果需要下载代码请移步到文末

代码:GitHub

文章首发公众号和个人博客:

公众号:无心的梦呓(wuxinmengyi)

这是一个记录红队学习、信安笔记,个人成长的公众号

扫码关注即可

博客:http://blog.seclibs.com/ 安全库:http://www.seclibs.com/ 记录红队相关学习笔记

© 著作权归作者所有

无心的梦呓
粉丝 0
博文 63
码字总数 73425
作品 0
东城
私信 提问
加载中

评论(0)

链表的C语言实现(含动态内存分配)

链表的C语言实现(含动态内存分配) 上 链表的C语言实现之动态内存分配 一、为什么用动态内存分配 但我们未学习链表的时候,如果要存储数量比较多的同类型或同结构的数据的时候,总是使用一个数...

晨曦之光
2012/03/09
761
0
线性表Linear List-线性表的链式表示和实现

线性表(Linear List) 线性表(Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列 其中: 数据元素的个数n定义为表的长度 = "list".length() ("list...

秋风醉了
2014/05/06
97
0
feof和EOF的字符被重复读取问题的思考

void main(){ PNode pNode; FILE *fp=fopen("1.txt","r"); pNode=Create(i); while(getc(fp)!=EOF) { int i; fscanf(fp,"%d",&i); pNode=Add(i,pNode); } fclose(fp); Print(pNode);} (问题......

断桥残雪断桥残雪
2015/05/17
455
0
数据结构与算法-C语言篇7-链式存储结构之静态链表

数据结构与算法-目录 前言    C语言具有指针能力,使得它可以非常容易地操作内存中的地址和数据,这比其他高级语言更加方便灵活。 后来的面向对象语言,如Java、C#等,虽不使用指针,但因为...

香沙小熊
2018/01/09
0
0
基本数据结构 -- 链表的遍历、查找、插入和删除单

  本文将使用 C 语言来实现一个单链表,并实现遍历、查找、插入、删除等操作。 一、创建一个单链表   首先,定义一个存放结点相关信息的结构体,结构体有两个元素,分别是键值和一个指向...

tongye
2019/04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Scala的运算符

在Scala中运算符的表示法不局限于字符, 中缀运算符可以是任何方法接受参数的方法 前缀运算符放在值的前面,只能是 + - ! ~ 四者之一, 方法名为unary_*(*为运算符) 后缀运算符是任何不接受参...

dreamness
30分钟前
17
0
GeJJSON

根据GeoJSON规范(RFC 7946):GeoJSON是一种对各种地理数据结构进行编码的格式。 GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几...

东东笔记
36分钟前
11
0
读写接口

针对一些输入/输出的场景,一般可能会涉及到读/写操作。比如,对一段字符串进行gzip压缩,或者解压缩,golang下主要通过两个接口来实现: 读的接口声明如下: type Reader interface {R...

道道法
昨天
19
0
mysql 运维命令

数据库备份导入 mysqldump -u root -p main_3_2_0 > /main_3_2_0.sqluse main_3_2_0source /main_3_2_0.sql #查询正在执行的sql show full processlist# 使用 kill id 来杀死进......

jxlgzwh
昨天
17
0
简易laravel路由权限开关(附黑名单防刷)

背景 : 今天开始这个版本的项目开发的时候,有一部分是优化系统的功能结构,其中就包括这个路由权限控制 (原本的意思是针对几个主要功能模块,做一个开关,以备线上可以做一些应急处理,后面...

冻结not
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部