数据结构
线性结构:线性表(一般线性表、栈、队列、串、数组)
非线性结构:集合、树形结构、图形结构(网状结构)。
存储结构:顺序结构、链式结构、索引结构、散列结构。
顺序结构:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单位的邻接关系来体现。
链式结构:借助指示元素存储地址的指针来表示元素之间的逻辑关系。
索引存储:在存储元素信息的同时,还建立附加的索引表。
散列存储:根据元素的关键字直接计算出元素的存储地址,又称哈希存储。
算法优越的要求:正确、可读、健壮、耗时少、执行过程中所需最大存储空间。
线性表是具有相同数据类型的个数据元素的有限序列。
除第一个元素外,每个元素有且仅有一个直接前驱。
除最后一个元素外,每个元素有且仅有一个直接后继。
线性表的顺序存储称为顺序表,它是由一组地址连续的存储单元依次存储线性表中的数据
元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。
顺序表的特点:
顺序表最主要的特点是随机存取,即通过首地址和元素序号可在时间
内找到指定的元素。
顺序表的存储密度高,
每个结点只存储数据元素。
顺序表逻辑上相邻的元素物理上也相邻,
所以插入和删除操作需要移动大量元素。
栈(Stack)
是只允许在一端进行插入或删除操作的线性表。
限定这种线性表只能在某一端进行插入和删除操作。
栈顶:
线性表允许进行插入删除的那一端。
栈底:
不允许进行插入和删除的另一端。
空栈:
不含任何元素的空表。
栈操作的特性是先进后出。