链式

一、什么是数据结构:

​ 1.数据结构的起源

​ 1968年,美国高德纳教授,《计算机程序设计的艺术》的第一卷《基本算法》的出版,开创了数据结构和算法的先河

​ 数据结构是一门研究数据之间的关系和操作的学科,而非计算方法

​ 数据结构+算法=程序 沃斯,凭借这个观点,获得了图灵奖,这句话展示了程序的本质

​ 2.数据结构的基本概念

​ 数据:所有能输入到计算机中,能被程序处理的描述客观事物的符号(变量、数组)

​ 数据元素:组成数据的,有一定意义的基本单位,也称为节点(结构体变量)

​ 数据项:有独立含义的数据的最小单位,也叫做域(结构体成员项)

​ 数据结构:相互之间有存在一种或多种特定关系的数据元素的集合

​ 算法:数据结构所具备的功能,解决特定的问题的方法

​ 3.研究数据结构的三个方面

​ 数据的逻辑关系

​ 数据的存储关系

​ 数据结构的运算

二、逻辑结构与存储结构

​ 数据的逻辑结构:

​ 集合:数据元素之间同属于一个集体,但是元素之间没有任何关系

​ 线性结构:数据元素之间存在一对一关系(表)

​ 树型结构:数据元素之间存在一对多关系

​ 图形结构:数据元素之间存在多对多关系

​ 数据的存储结构:

​ 顺序结构:

​ 数据元素存储在连续的内容中,用数据元素的相对位置来表示关系

​ 优点:支持随机访问,访问效率极高、适合查找数据、不易产生内存碎片

​ 缺点:空间利用率低,对内存的要求比较高,插入、删除不方便

​ 链式结构:

​ 数据元素存储在彼此独立的内存空间中,每个独立的元素也叫做节点,每个元素之间增加一个数据项用于存储其他元素的地址,以此来表示元素之间的关系

​ 优点:插入、删除方便、空间利用率高、适合增删数据

​ 缺点:不支持随机访问,只能从前往后逐个访问,容易产生内存碎片

​ 逻辑结构和存储结构的对应关系

​ 线性表 顺序 链式

​ 树 链式 顺序

​ 图 顺序+链式

​ 每种逻辑结构采用什么物理存储结构并没有明确规定,通常根据实现的难易程度、空间要求、时间的要求,综合选择最合适的物理存储结构

三、数据结构和运算

​ 1.建立数据结构 creat(create)

​ 2.销毁数据结构 destory

​ 3.清空数据结构 clean

​ 4.数据结构排序 sort

​ 5.插入元素 insert

​ 6.删除元素 delete

​ 7.访问元素 access

​ 8.修改元素 modify

​ 9.查询元素 query

​ 10.遍历数据结构 show print ergodic

四、顺序表和链式表的实现

​ 顺序表:

​ 数据项:

​ 存储元素的内存的首地址

​ 表的容量

​ 元素的数量

​ 运算:

​ 创建、销毁、清空、插入、删除、访问、修改、查询、排列、遍历

​ 注意:1.不要越界

​ 2.要保持元素的连续性

​ 优点:支持随机访问,修改、查询、排序效率比较高、大块的连续内存不容易产生内存碎片

​ 缺点:插入、删除元素时不方便、效率比较低,对内存的要求较高

链式表

​ 元素的数据项:

​ 数据域:可以是各种类型的若干个数据项

​ 指针域:指向下一个节点

​ 由若干个节点通过指针域来一对一连接在一起形成链式表

​ 不带头节点:

​ 第一个节点的数据域中存储的是有效的数据

​ 当添加删除节点时,又可以会修改了头节点的指针,参数就需要使用二级指针

​ 当删除时需要获取上一个节点的指针,而头节点没有上一个指针,因此需要额外处理

​ 带头节点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值