1.什么是链表

链表一种线性的数据结构,通过指针将一个个零散的内存块连接起来,链表的每个内存块称为结点。

2.链表的种类

单链表


根据上面的单链表结构图可以发现:

  • 每个结点除了存储数据data外,还需要记录下个结点的地址,称为后继指针next。
  • 单链表有两个特殊的结点,分别是第一个结点——头结点和最后一个结点——尾结点。
    • 头结点:用来记录链表的基地址。
    • 尾结点:尾结点的后继指针指向一个空地址NULL。

双向链表

根据上面的双向链表结构图可以发现:

  • 每个结点除了存储数据data外,还会会记录上一个结点和下一个结点的地址。
  • 单链表和双向链表的区别
    • 单链表的结点只有一个指向,即后继指针next指向下一个结点。
    • 双向链表的结点有两个指向,一个后继指针next指向下一个结点,还有一个前驱指针prev指向上一个结点。

循环链表

根据上面的循环链表结构图可以发现,循环链表的尾结点不指向空,而是指向头结点,类似一个环形结构。

3.链表的特性

  • 由于链表的内存空间是零散的,所以不支持随机访问。
  • 插入、删除不需要移动数据,所以效率高。
  • 因为链表的每个内存块都不是连续的,所以不需要提前计算内存的大小,内存空间可以根据结点数量的改变而改变。

【链表】 链表的基本概念及分类相关推荐

  1. TypeScript算法专题 - [双链表1] - 双链的概念及其实现

    TypeScript算法专题 - [双链表1] 双链的概念及其实现 李俊才 CSDN:jcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.net/q ...

  2. C语言数据结构单链表链表

    数据结构–单链表 学习了顺序表,我们发现顺序表在向里面存放数据的时候很麻烦,比如我们要使用头插法存放一个数据到顺序表的时候,我们要将整个表都向后挪一位,这个操作就让人很难受.那么有没有一种结构可以让我 ...

  3. (转载)安全漏洞概念及分类

    http://pan.baidu.com/s/1kT9LT4r 安全漏洞概念及分类 本文是一个安全漏洞相关的科普,介绍安全漏洞的概念认识,漏洞在几个维度上的分类及实 例展示. 安全漏洞及相关的概念 本 ...

  4. Java:异常的概念及分类、异常的处理、异常抛出及自定义异常

    异常概念 异常分类   Java异常处理机制 try ...catch...finally throw和throws 自定义异常 一.异常的概念         什么是异常?             ...

  5. 《大话数据结构》第9章 排序 9.2 排序的基本概念与分类

    9.2 排序的基本概念与分类 9.2.1 排序的定义         排序是我们生活中经常会面对的问题.同学们做操时会按照从矮到高排列:老师查看上课出勤情况时,会按学生学号顺序点名:高考录取时,会按成 ...

  6. FPGA的ip核之概念和分类

    ip核之概念和分类 IP(Intellectual Property)内核模块是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路.器件或部件.它有几种不同形式.IP内核模块有行为(behav ...

  7. 10 计算机组成原理第六章 总线 总线的概念与分类 总线性能指标 总线仲裁 总线操作和定时 总线标准

    文章目录 1 总线的概念与分类 1.1总线的定义 1.2 总线的特点 1.3 总线的特性 1.4 总线的分类 1.4.1 串行总线与并行总线 1.4.2 按总线功能分类 1.5 系统总线的结构 1.6 ...

  8. 18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理

    文章目录 1 IO设备的基本概念和分类 1.1 什么是I/O设备 1.2 I/O设备分类 2 IO控制器 2.1 I/O设备组成 2.2 I/O控制器功能 2.3 I/O控制器的组成 2.4 寄存器编 ...

  9. 3.5链表----链表中元素的删除(只删除一个元素情况)

    3.5链表----链表中元素的删除(只删除一个元素情况) 该部分与上一节是息息相关的,关于如何在链表中删除元素,我们一步一步来分析: 一.图示删除逻辑 假设我们需要在链表中删除索引为2位置的元素,此时 ...

最新文章

  1. 导入eclipse项目运行时run as no application
  2. 关于SQLServer和MySQL动态条数限制
  3. topcoder srm 495 div1
  4. http method
  5. vue生命周期大白话篇
  6. 《python 源码剖析》 读后总结(虚拟机综述)
  7. python闭包函数的必要条件_Python 函数 functions、闭包 closure
  8. 视频客观质量评价工具:MSU Video Quality Measurement Tool
  9. Last-Modify、ETag、Expires和Cache-Control(转载)
  10. input[type=radio]自定义样式
  11. arcgis取反+掩膜提取
  12. 复旦高等代数 I(15级)每周一题
  13. threejs 三面体_Three.js基础探寻五——正二十面体、圆环面等
  14. OCR扫描识别录入之汽车车架号(VIN码)识别查询系统
  15. 用matlab求roc曲线的面积Auc,sklearn计算ROC曲线下面积AUC
  16. 2018妙计旅行笔试题
  17. 深度学习,CPU、GPU、DSP、FPGA运算能力对比
  18. 有哪些不错的电子书管理软件?免费项目管理软件推荐
  19. Python登录大连交通大学教务在线实现成绩查询
  20. Ubuntu18.04安装evo及简单使用方法

热门文章

  1. 无验证码不扫码拼多多微信批量登陆思路
  2. linux ftdi 虚拟,linux ftdi 驱动
  3. WebService:跟孔浩学习(契约优先、Schema、WSDL、SOAP、用户管理小系统)
  4. JAVA 短链码生成工具类
  5. 1040 有几个PAT (25 分)
  6. oracle使用sql关闭trace日志,Linux清理Oracle日志巧用close_trace命令释放误删trace文件...
  7. 宝付旅行记二(宁夏银川)
  8. 拓嘉辰丰:怎样把买家秀做好促进转化
  9. Leetcode 45:跳跃游戏 II(最详细的解法!!!)
  10. 太酷了!用200个LED做一个智能手表(开源)