绪论和线性表
第一章 绪论
1、基本概念
- 数据:所有能输入到计算机中并被计算机程序处理的符号
- 数据元素:数据的基本单位,例如一名学生的记录
- 数据项:是组成数据元素的最小单位,例如学生记录中的学号、姓名、性别
- 数据对象:是性质相同的数据元素的集合,例如学生基本信息表
2、数据结构
逻辑结构-----集合结构、线性结构、树结构、图结构
3、抽象数据类型的表示(ADT)
4、时间复杂度:当问题规模成分大时,n增大,时间复杂度也会增大。如果算法的执行时间不随问题规模n的增大二增大,则时间复杂度为O(1)。O(1)并不说明计算量为1,而是说明时间为一个常量。
5、空间复杂度:算法所需空间的量度,需要分析实现算法所需的辅助空间。
如果所需辅助空间相对于输入数据量而言是个常数,则该算法为原地工作,O(1)。
小结
复习题目
算法的时间复杂度用(算法中所有基本运算的次数)来度量。
第二章 线性表
1、线性表定义:除第一个元素无直接前驱,最后一个元素无直接后继以外,其他每个数据元素都有一个前去和后继。
2、两种实现方式:
- 顺序存储
概念:用一组地址连续的存储单元依次存储线性表的数据元素,这存储结构线性表种称为顺序表
特点:逻辑上相邻的元素,其物理次数也是相邻的
只要确定了存储线性表的起始位置,线性表中任一元素都可以随机存取,所以称其为随机存取的存取结构。 - 链式存储
概念:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的),包括数据域和指针域,数据域存数据,指针域指示其后继的信息。
特点:头指针(head)–→头节点–→首元结点
头指针(haed):指向链表的第一个指针
头结点:在首元结点前设置的一个结点,数据域可以不存储任何数据
首元结点:存储第一个数据a1的结点
单链表是非随机存取的存储结构,取得第i个数据元素必须从头指针出发顺着链进行寻找,也称为顺序存取的存取结构。
复习题目
- 链表不具有的特点是:( )
A.插入、删除不需要移动元素
B.方便随机访问任一元素
C.不必事先估计存储空间
D.所需空间与线性长度成正比
答案(B) - 单链表的存储密度小于1
解析:存储密度=数据元素本身所占的存储量和整个结点结构所占的存储量之比 - 单循环链表和单链表的区别
解析:单循环链表是一类特殊的单链表,将单链表终端结点的指针域NULL改为指向表头结点
//小白的第二篇哈哈哈
要期末考了