线性表
线性表是具有相同数据类型的n个数据元素的有限序列,其中n为表长,当n=0时线性表是空表。
顺序表
线性表的顺序存储又称顺序表。逻辑上相邻的两个元素在物理位置上也相邻。
单链表
线性表的链式存储又称单链表,通过一组任意的存储单元来存储线性表中的数据元素。
双链表
双链表中有两个指针prior和next,分别指向前驱结点和后继结点。
循环单链表
循环单链表和单链表的区别在于,表中最后一个结点的指针不是NULL,而改为指向头结点,从而整个链表形成一个环。
循环双链表
循环双链表和双链表的区别在于,头结点的prior指针指向表尾结点,尾结点的next指向头结点。
静态链表
静态链表借助数组来描述线性表的链式存储结构,结点也有data和指针域next。
栈和队列
栈
栈是只允许一端进行插入或删除操作的线性表。
队列
队列简称队,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进入;删除元素称为出队或离队。
双端队列
允许两端都可以进行入队和出队操作的队列。
串
串是由零个或多个字符组成的有限序列。
树与二叉树
树是n(n≥0)个节点的有限集。当n=0时,称为空树。
在任意一颗非空树中应满足:
1)有且仅有一个特定的称为根的结点。
2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每个集合本身又是一棵树,并且称为根的子树。
树是一种递归的数据结构。
二叉树
二叉树是另一种树形结构,其特点是每个结点至多只有两颗子树(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。
二叉树是n(n≥0)结点的有限集合:
1)或者为空二叉树,即n=0
2)或者由一个根节点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一颗二叉树。
特殊的二叉树
满二叉树、完全二叉树、二叉排序树、平衡二叉树
图
图G由顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。
算法
查找
在数据集合中寻找满足某种条件的数据元素的过程称为查找。查找的结果分为 查找成功、查找失败
排序
输入: n个记录R1、R2、…、Rn , 对应的关键字为k1、k2、…、kn。
输出:输入序列的一个重排R1’、R2’、…、Rn‘,使得k1’ ≤ k2‘ ≤ … ≤ kn’ (≤可换成其他的比较大小的符号)