目录

1.单链表的存储结构定义详细解释

2.struct LNode* next解释,为啥next定义成指针类型


在实现单链表的时候对于存储结构有些疑惑

对于

typedef struct LNode {Book data; //数据域struct LNode* next;    //指针域
}LNode,*LinkList;

1.单链表的存储结构定义详细解释

有两个成员

  • 一个是元素类型,叫data;
  • 另一个next,是一个指向这种类型(LNode)的一个指针,是又包括两个成员的指针,自己来定义自己,嵌套定义。指针指向的变量(next)仍然是有data,有next两个成员

*Linklist是一个指针,指的是指向这个结点的指针,

  • 习惯上Linklist强调是一个单链表的头指针,而LNode * 强调这是指向单链表任意一个节点的头指针

2.struct LNode* next解释,为啥next定义成指针类型

这里struct LNode* next是一个自引用结构体,相当于又定义了一个结构体,struct当然不能忽略!

定义next时使用指针是因为:

  • 如果不加*的话,实际上是一个无限循环,成员next是一个结构体,next的内部还会有成员是结构体,依次下去,无限循环。在分配内存的时候,由于无限嵌套,也无法确定这个结构体的长度,所以这种方式是非法的。
  • 但如果加上*的话,由于指针的长度是确定的(在32位机器上指针长度为4,指针的大小在具体的机器平台和编译器环境中都是已知的,不同的平台环境的定义不完全相同),所以编译器能够确定该结构体的长度。不会导致上述的递归死循环。是合法和可行的。

数据结构问题解决2.1——单链表存储结构定义详细解释,struct LNode* next解释,为啥next定义成指针类型相关推荐

  1. 线性单链表存储结构c语言代码,单链表定义-(线性表的链表存储结构)

    线性表分为:顺序存储结构和连存储结构 顺序存储结构的优点: 1.空间利用率高,几乎不需要额外的空间开销. 2.数据的逻辑结构和物理结构完全一致. 3.结点地址计算的时间和线性表的规模大小无关. 4.可 ...

  2. java单链表存储结构_Java数据结构——单链表

    单链式存储线性列表 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的 (图片来自网络,侵删) 存储单元由两部分组成,数据源和指针,数据源 ...

  3. 数据结构——单链表存储结构

    单链表的链式存储结构 所谓链式存储结构,相较于顺序存储结构的顺序表,顾名思义其存储方式不再是物理地址开辟一块连续空间存储所有结点的方式,见图1,而是通过指针将结点连接起来的存储方式.因此,单链表的每一 ...

  4. 线性表的单链表存储结构

    文章目录 一.什么是单链表 (一)单链表结点的数据结构 (二)非空单链表数据结构 二.单链表的各个功能实现 (一)初始化 1.算法步骤 2.算法代码 (二)查找元素 1.算法步骤 2.算法代码 (三) ...

  5. 数据结构练习:运用单链表实现图书管理系统(c/c++)(内含带头结点的单链表的基本操作)

    数据结构练习:运用单链表实现图书管理系统 正文 注意 部分功能运行展示 所包含头文件及结构体的定义 自定义函数 主函数 完整代码 结束语 正文 本程序使用带头节点的单链表存储结构实现,共有六个基本功能 ...

  6. 数据结构与算法4——链式存储结构

    前面所讲的线性表的顺序存储结构,它最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间. 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被 ...

  7. 单链表存储一元多项式[IMUT 数据结构实验]

    题目 [问题描述] 利用单链表存储一元多项式. [基本要求] 实现以下基本操作: (1)从键盘输入一元多项式的信息,建立一元多项式. (2)实现两个一元多项式相加,并输出和多项式. 分析 题目说是用单 ...

  8. 《大话数据结构》5一文学会数据结构中的静态链表存储结构(概念,实例,代码)

    静态链表 1.静态链表基本介绍 (1)静态链表:用数组来代替指针,来描述单链表.我们把用数组描述下标的链表叫做静态链表.也叫游标实现法. (2)首先让数组的元素是两个数据域组成,data 和cur.也 ...

  9. DHU数据结构-单链表-ADT应用-长整数加法运算(使用单链表存储计算结果)

    目录 1.题目 2.题解 3.代码实现 1.题目 单链表ADT模板应用算法设计:长整数加法运算(使用单链表存储计算结果) 作者: 冯向阳 时间限制: 1S 章节: DS:线性表 问题描述 : 目的:使 ...

  10. 数据结构(二)——单链表的头插与尾插

    一.引言 上篇文章我们知道了顺序表的缺点: 插入和删除操作需要移动大量元素. 数组的大小不好确定. 存储分配需要一整段连续的存储空间,不够灵活,造成很多碎片(空闲的空间得不到利用). 所以我们就引入了 ...

最新文章

  1. 20年的人工智能设计总结:向产品中注入人工智能的指南
  2. IBM发布迄今最强的量子处理器,面向商业和科研用途
  3. 老手讲解在JSP开发中与Web的中文问题解决方法
  4. SuperCMS 上传漏洞!
  5. javacript Function parameters(函数参数)
  6. Cookie 版购物车
  7. MacBook Air 过热降温技巧
  8. 专业Excel组件Spire.XLS 教程:在Excel中合并单元格
  9. win7安装英语语言包
  10. apesv100数据库_生物信息学相关数据库资源介绍..ppt
  11. chrome主页被篡改为360导航
  12. CAD突然没有对话框了?只能命令行输入内容??(FILEDIA=0?CMDECHO=0?)
  13. 独立站SEO到底怎么做?
  14. ueditor插入图片调节框显示bug
  15. 电影《美丽心灵》中纳什的经典演讲(双语)
  16. WordPress批量修改数据库内文章内容文字关键字标题
  17. 测试用例之性能测试用例
  18. Python快捷创建文件夹和文件详解
  19. c语言简单验证哥德巴赫猜想
  20. 模拟自由落体运动的小球

热门文章

  1. php提取pdf中的文字,如何提取pdf中的文字内容 如何从pdf中提取文字
  2. dtu连接mysql_数据中心使用dtu远程连接oracel 9i数据库问题
  3. 哲学家进餐问题 C++实现
  4. 《Spring Recipes》第三章笔记3:Specifying Aspect Preced...
  5. 红米手机使用应用沙盒一键修改cpu信息
  6. 航天信息上传服务器地址,金税盘上传参数设置怎么设置?
  7. Roslyn(CSharpScript).Net脚本编译引擎使用过程内存增涨与稳定的方式
  8. 一、Geos库的安装和计算多边形是否相交
  9. 十进制转化为十六进制的三种方法 (可适用于十进制转化为各种进制)
  10. Java事务处理总结