c++ 09

时间:2023-03-08 22:03:46

一、数据结构
程序设计=数据结构+算法
1.逻辑结构
1)集合:元素之间没有联系。
2)线性结构:元素之间存在前后顺序。
3)树形结构:元素之间存在一对多的父子关系。
4)图状结构:元素之间存在多对多的映射关系。
2.物理结构
1)顺序结构:用连续的空间存放数据元素。
优点:便于随机访问。
缺点:空间利用率低,插入删除不方便。
2)链式结构:用不连续的空间存放数据元素,每个数据元素中处理存放数据意外,还要存放下一个元素的地址。
优点:空间利用率高,插入删除方便。
缺点:随机访问不方便。
3.逻辑结构和物理结构的关系
线性结构(表)- 顺序结构、链式结构
                 (数组)    (链表)
树形结构(树)- 顺序结构、链式结构
图状结构(图)- 复合结构
4.常用数据结构的实现
1)数组、串
2)堆栈:后进先出(LIFO)
3)队列:先进先出(FIFO)
4)链表:单向线性、双向线性、单向循环、双向循环
5)二叉树
6)图:有向图、无向图

二、堆栈
1.基本特征:后进先出
2.基本操作:压入(push),弹出(pop)
3.实现要点:初始化空间、栈顶指针、判空判满
1234 = 1*8^3 + 2*8^2 + 3*8^1 + 4*8^0

三、队列
1.基本特征:先进先出
2.基本操作:从后端(rear)压入(push),从前端(front)弹出(pop)
3.实现要点:初始化空间、从后端指针压入,从前端指针弹出,循环使用,判空判满

四、链表
1.基本特征:由一系列内存中不连续的节点组成,每个节点除了保存数据以外,还需要保存其前后节点的地址——双向链表。
2.基本操作
1)追加
2)插入
3)删除
4)遍历
5)伪随机访问