二、线性表

线性表的类型定义

  • 线性表是n(n>0)个相同类型数据元素构成的有限序列,其中n为线性表的长度。

  • 线性表的基本操作:

线性表的顺序表示和实现

  • 线性表的顺序存储结构:用一组地址连续的存储单元依次存储线性表的元素。

  • 线性表的顺序存储,也成为向量存储,又可以说是一维数组存储。线性表中结点存放的物理顺序与逻辑顺序完全一致,它叫向量存储。

  • 线性表顺序存储结构在插入或删除数据元素时比较繁琐,但是它比较适合存取数据元素。
  • 线性表的插入操作:在第i个元素之前插入一个元素时,需将第n至第i(共n-i+1)个元素向后移动一个位置。

  • 线性表的删除操作:删除第i个元素时需将从第i+1至第n(共n-i)个元素一次向前移动一个位置

线性表的链式表示和实现

  • 用一组任意的存储单元(可能不连续)存储线性表的数据元素。
  • 在链式存储结构中,每个存储结点不仅包含数据元素本身的信息,还必须包含每个元素之间逻辑关系的信息,即包含直接后继结点的地址信息(指针域)。

  • 逻辑顺序与物理顺序有可能不一致;属顺序存取的存储结构,即存取每个元素必须从第一个元素开始遍历,直到找到需要访问的元素,所以所花时间不一定相等。

  • 链表的创建方式

  • 结点类的定义:

单链表的基本操作

  • 插入方式——头插法:

  • 插入方式——尾插法:

  • 查找运算——按序号查找:在链表中,即使知道被访问结点的序号i,也不能像顺序表中那么直接按序号i访问结点,而只能从链表的头指针除法,顺着链域next逐个结点往下搜索,直至搜索到第i个结点为止。链表不是随机存取结构,只能顺序存取。

  • 查找运算——按数值查找:

  • 删除结点:将被删除结点的前驱指针连接被删除结点的后继指针

循环链表

  • 表中尾结点的指针域指向头结点,形成一个环。从表中任意一个点出发都可以找到表中其他的结点。

  • 循环链表的操作和线性链表的操作基本一致,但循环链表中没有NULL指针,故遍历操作时,终止条件不再是判断p或p.next是否为空,而是判断他们是否等于某一指定指针,如头指针或尾指针。

双向链表

  • 双向链表是在单链表的每个结点里再增加一个指向其直接前驱的指针域prior。这样就形成了链表中有两个方向不同的链,故称为双向链表。

  • 双线链表——头插法:

  • 双向链表——尾插法:

  • 插入操作

有帮助到你的点赞、收藏和关注一下吧

需要更多教程,微信扫码即可

数据结构知识点大汇总(二)相关推荐

  1. 数据结构知识点大汇总(五)

    五.树 树的定义 树的逻辑表示:树形表示法.文氏图表示法.凹入表示法.括号表示法. 结点:表示树中的元素,包括数据项及若干指向其子树的分支. 结点的度:结点拥有的子树树:树的度:一棵树中最大的结点度数 ...

  2. 数据结构知识点大汇总(六)

    六.图 图的概念 图是一种较线性表和树更为复杂的数据结构,在图形结构中,结点之间关系可以是任意的,图中任意两个数据元素之间都可能相关. 有向图和无向图 若无向图中的每两个顶点之间都存在着一条边,则称该 ...

  3. 数据结构知识点大汇总(七)

    七.查找 概述 查找表:由同一类型的数据元素(或记录)构成的集合. 静态查找表 静态查找是指在静态查找表上进行的查找操作,在查找表中满足条件的数据元素的存储位置或各种属性.静态查找表的查找算法主要有: ...

  4. 数据结构知识点大汇总(八)

    八.排序 排序概述 排序的分类:内部排序和外部排序(若待排序记录都在内存中,称为内部排序:若待排序记录一部分在内存,一部分在外存,则称为外部排序).稳定排序和不稳定排序. 内部排序的算法:插入排序(希 ...

  5. 数据结构知识点大汇总(一)

    一.数据结构绪论 数据结构的基本概念 数据结构是一门研究非数值计算的程序设计问题中,计算机的操作对象以及它们之间的关系和操作的学科. 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和 ...

  6. 数据结构知识点大汇总(三)

    三.栈和队列 栈的概念 栈是限制在表的一端进行插入和删除运算的线性表,通常称插入.删除的这一端为栈顶,另一端为栈底.当表中没有元素时成为空栈. 栈的进出顺序判断: 栈的基本操作: 顺序栈 顺序栈利用一 ...

  7. 数据结构知识点大汇总(四)

    四.数组和广义表 数组的定义 数组是我们熟悉的数据类型,数组中各元素具有统一的类型,并且数组元素的下标一般具有固定的上界和下界,因此,数组的处理比其它复杂的结构更为简单. 任何数组A都可以看作一个线性 ...

  8. Java面试笔试题大汇总二(最全+详细答案)

    本篇文章内容过多,只能分成两部分: 汇总一:https://blog.csdn.net/qq_20757489/article/details/93714854 汇总二:https://blog.cs ...

  9. 面试必会系列 - 2.1 MySQL知识点大汇总(基本架构,存储引擎,锁,事务,索引,B+树等等)

    本文已收录至 Github(MD-Notes),若博客中图片模糊或打不开,可以来我的 Github 仓库,包含了完整图文:https://github.com/HanquanHq/MD-Notes,涵 ...

最新文章

  1. SQL SERVER 2008的SQLCMD模式
  2. python第五章课后题答案超星_MOOC网课章节答案_Python 语言程序设计见面课测试答案...
  3. BZOJ1563:[NOI2009]诗人小G(决策单调性DP)
  4. Invalid bound statement (not found): com.xxxx.dao.other.LoginDao.getUser
  5. PAT甲级 -- 1041 Be Unique (20 分)
  6. 网上借鉴及自己对git的认知(很早就写了,一直没有上传,如有误解,请指出)...
  7. 解决:pip警告!DEPRECATION: The default format will switch to columns in the future.
  8. 英特尔发布其首个适配Win11的显卡驱动
  9. main函数argc,argv操作
  10. sqlite工作记录-1数据库数据写入-转
  11. 【TJOI2016】【bzoj4552】排序(二分答案+线段树01排序)
  12. iOS 面试常问考点
  13. 【bzoj4897】[Thu Summer Camp2016]成绩单 区间dp
  14. SQL Server 2012 数据库可疑问题解决
  15. oracle中imp命令详解,Oracle使用imp命令导入数据详解
  16. 创建一维数组,存储班级中10位同学的年龄信息,并求出班级同学的平均年龄。找出班级中的最小年龄和最大年龄。(冒泡排序)
  17. DataWindow的数据更新技术及应用
  18. eos节点服务器_eos区块链php开发包
  19. (转)逆向与反汇编工具
  20. 【SAP GUI 脚本 VBA】

热门文章

  1. 网信集团:一直在正常运营 高管被带走消息不实
  2. 618电商大促 到底谁家赢了?大家都这么有钱的吗?
  3. 一加WarpTen技术今日发布:全新旗舰一加7将搭载
  4. 实习生使用微软雅黑致公司被起诉索赔千万?方正回应...
  5. R40使用GPIO中断实现按键功能【原创】
  6. 基于exosip的uas-uac的一个简单例子(转载)
  7. Android Studio插件安装
  8. urllib2的用法
  9. tensorflow线性回归基础函数
  10. ftp加速传输java_Java FTPClient 大量数据传输的问题(未解决)