数据结构分类
集合
线性结构(一对一)
树形结构(一对多)
图结构(多对多)
数据结构三要素
1、逻辑结构
2、数据的运算
3、存储结构(物理结构)
线性表分类
1、顺序表
2、链表
3、栈
4、队列
5、串
线性表--顺序表
顺序表的特点
顺序表的删除和插入
顺序表的查找
顺序表和数组的区别
1、顺序表和数组虽然都是用来存储线性表的数据结构,但它们之间存在一些关键的区别。
2、首先,数组的长度一旦定义,就是固定的,不能动态地增加或删除元素。相比之下,顺序表是活的,可以动态地增加或删除元素,这使得顺序表具有更大的灵活性。其次,数组通常用于存储静态数据,而顺序表则更多地用于处理动态数据,能够根据需要调整大小。
3、顺序表通常是通过数组来实现的,但它并不等同于数组。顺序表的实现基于数组,但提供了更多的操作选项和灵活性,使其成为一种更通用的数据结构。顺序表在物理存储上是以数组的形式保存线性表的元素,但在逻辑上,它提供了一组操作来动态地添加、删除元素,这些操作在数组中通常是不支持的1
线性表--单链表
单链表和顺序表的比较
单链表的定义
单链表的插入删除
单链表的查找
线性表--双链表
线性表--循环链表
循环单链表
循环双链表
顺序表和链表的比较
逻辑结构
存储结构
基本操作(增删查)
线性表--栈
栈的概念
顺序存储实现栈
链式存储实现栈
1、设计一个单链表,只允许在头部进行添加和删除
2、这样的链式存储最终可实现栈
线性表--队列
队列的概念
顺序存储实现队列
链式存储实现队列
线性表--双端队列
输入输出受限队列概念
输入受限的队列
输出受限的队列
线性表--串
串的概念
字符集编码
栈的应用
栈在括号匹配中的应用
表达式求值问题
表达式求值思路
栈在递归中的使用
像函数调用实际就是栈来管理的,会先执行最后入栈的函数
队列的使用
1、cpu的使用,如果有很多进程同时运行,会用队列来管理,先进入队列的先处理,然后再将其放入队尾,循环往复