数据结构
一、逻辑结构
1. 线性
(1)队列和栈
栈:先进后出
队列:先进先出
(2)线性表
- 数组(顺序存储):内存连续分配,并且静态分配。
时间复杂度(O)查找的次数:
读操作:O(1)
查询操作:O(n)
插入操作:O(n)
删除操作:O(n)
- 链表(链式存储):(分为数据域和指针域)链表的内存不连续,是通过一个指向下一个元素地址的引用将链表中的所有元素串起来。
时间复杂度(O)查找的次数:
读操作:O(n),最好情况为1,最坏为n
查询操作:O(n)
插入操作:O(1)
删除操作:O(1)
(1)头结点:第一个有效结点之前的那个结点,存放链表的首地址,不存放有效数据。
(2)首结点:第一个有效结点(数据域中存在数据)。
(3)尾结点:最后一个有效结点。
(4)头指针:指向头结点的指针变量。
(5)尾指针:指向尾结点的指针变量。
顺序存储与链式存储的区别:
2. 非线性
二、物理结构(存储结构)
考试非重点,在此不做过多描述,有意向可自行查阅资料。