潍坊市论坛

注册

 

发新话题 回复该主题

数据结构的简单介绍 [复制链接]

1#

数据结构

数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。

线性表

线性表是最常用且最简单的一种数据结构,它是n个数据元素的有限序列。

实现线性表的方式一般有两种,一种是使用数组存储线性表的元素,即用一组连续的存储单元依次存储线性表的数据元素。另一种是使用链表存储线性表的元素,即用一组任意的存储单元存储线性表的数据元素。

数组是一种大小固定的数据结构,对线性表的所有操作都可以通过数组来实现。虽然数组一旦创建之后,它的大小就无法改变了,但是当数组不能再存储线性表中的新元素时,我们可以创建一个新的大的数组来替换当前数组。这样就可以使用数组实现动态的数据结构。

常用的数据结构

数组(Array)

数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。一个数组可以分解为多个数组元素,按照数据元素的类型,数组可以分为整型数组、字符型数组、浮点型数组、指针数组和结构数组等。

栈(Stack)

栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。栈在汇编语言程序中,经常用于重要数据的现场保护。栈中没有数据时,称为空栈。

队列(Queue)

队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。队列中没有元素时,称为空队列。

链表(LinkedList)

链表是一种数据元素按照链式存储结构进行存储的数据结构。链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。

树(Tree)

树是典型的非线性结构,它是包括,2个结点的有穷集合K。在树结构中,有且仅有一个根结点,该结点没有前驱结点。

图(Graph)

图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。如果两个顶点之间存在一条边,那么就表示这两个顶点具有相邻关系。

堆(Heap)

堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。

散列表(Hash)

散列表源自于散列函数(Hashfunction),其思想是如果在结构中存在关键字和T相等的记录,这样就可以不用进行比较操作而直接取得所查记录。

我在这里

等着你来

预览时标签不可点收录于话题#个上一篇下一篇
分享 转发
TOP
发新话题 回复该主题