什么是线性结构?
线性结构是一个数据元素的有序集。它包括:线性表,栈,队列,双队列等。
其基本特征为:
*集合中存在唯一的第一个元素
*集合中存在唯一的最后一个元素
*除第一个元素外,都存在唯一的直接前驱
*除最后一个元素外,都存在唯一的直接后继
(是有限序列,所有元素之间的性质都相同,元素之间的关系是线性的)
一 顺序表
1.知识点
用一组地址连续的存储单元依次存储线性表中的各元素,通过位置表示结点之间的逻辑关系
图示
顺序表的每个数据元素占用相同数量的存储空间,逻辑上相邻的数据元素物理次序上也相邻,相邻两个数据元素Ki与Ki+1存储位置的关系:Lok(Ki+1)=Loc(Ki)+c,第i个元素Ki的存储位置为Loc(Ki)=Loc(K0)+i*c
二 链表
1.知识点
用一组任意的存储单元存储线性表中各元素,通过指针来表示数据元素之间的逻辑关系
图示
*每个数据元素占用相同数量的存储空间
*数据元素的逻辑顺序与物理顺序不一致
*数据元素之间的逻辑关系由结点中的指针来表示
三 栈
1.知识点
*栈和队列是操作受限的线性表
*栈限定在表尾进行插入或删除,表尾端称栈顶,表头端称栈底
*栈的特点:后进先出(LIFO)
图示
顺序栈
顺序栈是一个静态结构,需要提前分配好空间位置
进栈:MAXNUM是栈中最大元素个数,当栈中已经由这么多元素时,再进行进栈操作,就会产生溢出,称为上溢(overflow)
出栈:对出栈运算时,需要判断是否为空栈,否则同样会产生溢出,称为下溢(underflow)
链栈
2.应用
进制转换,括号匹配,“聪明的学生”,迷宫,表达式求值
四 队列
1.知识点
*队列限定在一端进行插入,一端删除,插入端称队尾,删除端称队头
*队列的特点:先进先出(FIFO)
图示
2.应用
迷宫,农夫过河