数据结构中典型数据类型
数组 Array
在程序设计中,为了处理方便,把具有相同类型的若干变量有序的形式存储组织起来, 这些按序排列的同类数据元素的集合称为数组. 数组元素可以是基本数据类型或是类类型.
栈 Stack
是只能在某一端插入和删除的特殊线性表,它按照后进先出的原则存储数据, 先进入的数据被压入栈底,最后的数据在栈顶,读数据的时候从栈顶开始弹出数据(最后一个入栈被第一个弹出).
队列 Queue
一只特殊的线性表,它只允许在表的前端进行删除操作, 而在表的后端进行插入操作,进行插入操作的端称为队尾,进行删除的端称为队头, 队列中没有元素是, 称为空队列.
链表 Linked List
由一个系列节点元素组成, 节点物理存储非顺序, 数据元素的逻辑顺序是通过节点中的指针/引用次序实现的.
每个节点包括两个部分: 一个是节点数据(可以是任意数据类型), 另一个是下一个节点的地址/引用.
树 Tree
树是包含n(n>0) 个节点的有穷集合K, 且在K中定义一个关系N, N满足以下条件:
- 有且仅有一个节点K0, 他对于关系N来说没有前驱, 称K0为树的根节点. 简称为根(root)
- 除K0外,K中的每个节点,对于关系N来说有且仅有一个前驱.
- K中各节点, 对关系N来说可以有M个后继(m>=0)
图 Graph
图是由节点的有穷集合 V和边的集合 E组成。其中,为了与树形结构加以区别,在图结构中常常将节点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
堆 Heap
在计算机科学中 ,堆是一种特殊的树形数据结构,每个节点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根节点的 值最小(或最大),且根节点的两个子树也是一个堆。
散列表 Hash
若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数按这个思想建立的表为散列表