复习下数据结构基础
线性表:由零个或多个数据元素组成的有限序列。
数组:在我们程序设计中,为了处理方便,会把一些具有相同类型的元素有序的放在一起,这些有序排列的数据元素的集合成为数组。
栈:栈是只能在一端插入或删除的特殊线性表,先入栈的数据在栈底,后入栈的数据在栈顶,需要读取数据时,最先获取到的是栈顶的数据。也就是先进后出,后进先出。
队列:一种特殊的线性表,它允许在表的前端进行删除,后端进行插入操作,队列是先进先出,后进后出原则。
链表:链表是一种物理存储单元上非连续的,非顺序的存储结构,它既可表示线性的,也可以表示非线性的,在这里(逻辑结构中)链表是通过其中的指针来链接次序的,它是由一系列结点(链表中的每一个元素成为结点)组成的,结点可以在运行时生成,当中包含两个重要数据,一个是存储结点内容的数据域,另一个是存储下一个结点地址的指针域。
树:包含n(n>0)个结点的有穷集合k,且在k中定义了一个关系N,N满足以下条件:
1.有且只有一个k0结点,k0结点称为树的根(root)结点;
2.除k0外,k中的每个结点有且只有一个前驱结点;
3.k中各结点,对关系N来说,可以有m个后续(m>=0)。
图:图是由有穷集合V和边集合E组成的,为和树做区别,图中的结点称为顶点,边是顶点的有序偶对,若两个顶点中间存在一条边则表示这两个顶点为相邻关系。
堆:堆是一种特殊的树形数据结构,每个结点都有一个值,通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根节点的值最小(或最大),且根节点的两个子树也是一个堆。
散列表:若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表称为散列表。
参考链接:
https://blog.csdn.net/sinat_34344123/article/details/80479364#array