算法导论笔记(2):几种基本数据结构
2014-02-09 21:51
274 查看
1. 线性数据结构
线性数据结构中最重要的是数组和链表。访问数组中任何一个元素所用的时间都是相同的,而链表不具备这样的属性。数组被用于实现其他重要的数据结构,例如字符串。对字符串的操作与对数组的操作大不相同,字符串的操作包括:计算长度、比较字符串的大小或者连接两个字符串等。对链表中不同元素的访问时间是不同的,因为任何访问必须从第一个元素开始。对链表的插入或删除操作要比数组简单一些。
数组和链表是两类最重要的线性数据结构,其他的线性数据结构还包括栈和队列。栈是一种特殊的链表,其插入和删除操作都只能在顶端。栈具有先进后出的特点,在递归算法中是非常重要的。队列则是另外一种特殊的链表,在头部删除、尾部加入,具有先进先出的特点,象柜员机前面排队的人群一样。队列在一些图算法中有非常重要的应用。优先权队列中的元素具有权值,通常的操作是从种选择权值最高的元素来进行,包括寻找权值最大的、删除权值最大的以及加入一个元素等。通常的实现方式是数组或者排序好的数组,但这两种都不是最有效的实现。优先权队列比较好的实现是一个heap。
2. 图
图由结点和边组成,一般允许有循环边(存在以同一点为起点和终点的边),但是不能有重复边(两条边的起点和终点都相同)。
图一般有两种表示方式:邻接矩阵和邻接列表。若途中有n个结点,则有一个n*n的邻接矩阵。矩阵中的元素为1,代表对应的行列结点之间有一条连接边。无向图的邻接矩阵都是对称的。
邻接表是链表的集合,每个结点有一个对应的链表,链表中包含 了与该链表对应结点相邻的所有结点。换句话说,邻接列表中每个列表代表了邻接矩阵中的列,列表中出现的元素对应于列中的“1”。
一个图:
图对应的邻接矩阵和邻接列表:
若图是稀疏的,则邻接表的表示使用的空间要小些;反之则是邻接矩阵使用的空间要小些。一般而言,两种表示法的方便性依赖于问题的性质、算法以及输入图的性质。
3. 权值图
线性数据结构中最重要的是数组和链表。访问数组中任何一个元素所用的时间都是相同的,而链表不具备这样的属性。数组被用于实现其他重要的数据结构,例如字符串。对字符串的操作与对数组的操作大不相同,字符串的操作包括:计算长度、比较字符串的大小或者连接两个字符串等。对链表中不同元素的访问时间是不同的,因为任何访问必须从第一个元素开始。对链表的插入或删除操作要比数组简单一些。
数组和链表是两类最重要的线性数据结构,其他的线性数据结构还包括栈和队列。栈是一种特殊的链表,其插入和删除操作都只能在顶端。栈具有先进后出的特点,在递归算法中是非常重要的。队列则是另外一种特殊的链表,在头部删除、尾部加入,具有先进先出的特点,象柜员机前面排队的人群一样。队列在一些图算法中有非常重要的应用。优先权队列中的元素具有权值,通常的操作是从种选择权值最高的元素来进行,包括寻找权值最大的、删除权值最大的以及加入一个元素等。通常的实现方式是数组或者排序好的数组,但这两种都不是最有效的实现。优先权队列比较好的实现是一个heap。
2. 图
图由结点和边组成,一般允许有循环边(存在以同一点为起点和终点的边),但是不能有重复边(两条边的起点和终点都相同)。
图一般有两种表示方式:邻接矩阵和邻接列表。若途中有n个结点,则有一个n*n的邻接矩阵。矩阵中的元素为1,代表对应的行列结点之间有一条连接边。无向图的邻接矩阵都是对称的。
邻接表是链表的集合,每个结点有一个对应的链表,链表中包含 了与该链表对应结点相邻的所有结点。换句话说,邻接列表中每个列表代表了邻接矩阵中的列,列表中出现的元素对应于列中的“1”。
一个图:
图对应的邻接矩阵和邻接列表:
若图是稀疏的,则邻接表的表示使用的空间要小些;反之则是邻接矩阵使用的空间要小些。一般而言,两种表示法的方便性依赖于问题的性质、算法以及输入图的性质。
3. 权值图
相关文章推荐
- 算法导论第十章:基本数据结构
- 数据结构与基本算法的学习笔记-顺序搜索-2
- opencv学习笔记——数据结构与基本绘图
- 数据结构——几种链表基本操作
- [数据结构笔记]1.基本概念
- 【数据结构笔记】二叉树的基本操作
- OpenCV3学习笔记-数据结构和基本绘图
- 数据结构笔记(一)线性表的顺序表示和基本操作及其顺序表实现的集合运算(A-B)U(B-A)实例
- opencv学习笔记[9]:Opencv的基本数据类型和矩阵结构
- Scala入门学习笔记二-基本数据类型、程序控制结构
- 数据结构与基本算法的学习笔记-简述-1
- 数据结构笔记(二)线性表的链式表示和基本操作
- opencv学习笔记[9]:Opencv的基本数据类型和矩阵结构
- 1、数据结构笔记之一入门基本概念
- 学习笔记 之 数据结构——基本概念
- 考试笔记03_数据结构_基本算法复杂度
- OpenCV笔记(一)——数据结构与基本绘图
- 【郝斌数据结构自学笔记】1-4_数据结构定义及特点
- 数据结构的基本知识及常见试题
- 数据结构中线性表的一些基本操作