目录

  • 1 绪论
    • 1.1 数据结构的定义和基本术语
    • 1.2 数据的逻辑结构和存储结构
    • 1.3 算法和算法分析
  • 2 线性表
    • 2.1 线性表的定义及逻辑结构
    • 2.2 顺序存储结构
    • 2.3 链式存储结构
    • 2.4 应用:一元多项式的表示和相加
  • 3 栈和队列
    • 3.1 栈
    • 3.2 队列
  • 4 串
    • 4.1 资源
  • 5 数组
    • 5.1 数组
    • 5.2 广义表
  • 6 树和二叉树
    • 6.1 树的定义和基本术语
    • 6.2 二叉树
    • 6.3 遍历二叉树和线索二叉树
    • 6.4 树和森林
    • 6.5 哈夫曼树及其应用
  • 7 图
    • 7.1 图的定义和基本术语
    • 7.2 图的存储结构
    • 7.3 图的遍历
    • 7.4 图的应用
  • 8 查找
    • 8.1 查找的基本概念
    • 8.2 基于线性表的查找
    • 8.3 基于树的查找
    • 8.4 哈希表
  • 9 内部排序
    • 9.1 排序的定义和种类
    • 9.2 插入排序
    • 9.3 B-树和B+树
    • 9.4 交换排序
    • 9.5 选择排序
    • 9.6 归并排序和基数排序
  • 10 实验
    • 10.1 目的要求
      • 10.1.1 参考代码
图的定义和基本术语

图(Graph)由非空的顶点(vertices)集合和一个描述顶点之间关系——边(无向边edges)或弧(有向边)的有限集合组成的,可以用二元组定义为:G=(V,VR)

其中,G表示一个图,V是图中顶点的集合,VR是图中边或弧的集合。

VR代表弧的集合时,VR{<v,w>| v,w∈V P(v,w)定义了弧<v,w>的意义}<v,w>表示从 v w 的一条弧,并称 v 为弧尾,w 为弧头。

由于是有方向的,因此称由顶点集和弧集构成的图为有向图。7.1是一个有向图G1G1 = (V1, VR1) 其中V1={A, B, C, D, E}VR1={<A,B>, <A,E>, <B,C>, <C,D>, <D,B>, <D,A>, <E,C> }

<v, w>ÎVR 必有<w, v>ÎVR, 则称 (v,w) 为顶点v 和顶点 w 之间存在一条边即一条边相当与两条互相指向的有向边。由顶点集和边集构成的图称作无向图。图7.2是一个无向图G2G2=(V2,VR2) 其中V2={A, B, C, D, E, F}VR2={A,B,A,E,B,E,C,D, D,F,B,F, C,F}

下面是图的基本术语:

1)网、子图。

弧或边带权的图分别称作有向网无向网,图7.3是一个有向网。设图G=(V,{VR}) 和图 G¢=(V¢,{VR¢}),且 V¢ÍV, VR¢ÍVR,则称 G¢  G 子图

2完全图、稀疏图、稠密图。

假设图中有 n 个顶点,e 条边,则含有 e=n(n-1)/2 条边的无向图称作完全图;含有 e=n(n-1) 条弧的有向图称作有向完全图;若边或弧的个数很少,习惯值是n(n-1)70%以下,则称作稀疏图,否则称作稠密图。

3)邻接点、度、入度、出度。

对于无向图来说,假若顶点v 和顶点w 之间存在一条边,则称顶点v w 互为邻接点,边(v,w) 和顶点v w 相关联。和顶点v 关联的边的数目定义为顶点v的度,记为ID(v)。例图7.2中,ID(B) = 3 ID(A) = 2

对有向图来说,以顶点v为弧尾的弧的数目称为为顶点的出度,记为OD(v)。以顶点v为弧头的弧的数目称为顶点的入度,记为ID(v)。出度和入度之和称为顶点的度,记为TD(v)。例图7.1中,OD(B) = 1ID(B) = 2TD(B) = 3

4路径、路径长度、简单路径、简单回路。

设图G=(V, VR)中的一个顶点序列{ u=vi,0,vi,1, …, vi,m=w}中,(vi,j-1,vi,j)ÎVR 1≤j≤m, 则称从顶点u 到顶点w 之间存在一条路径。路径上边的数目称作路径长度。例图7.1中,路径{A,B,C,D}的长度为3

简单路径:序列中顶点不重复出现的路径。

简单回路:序列中第一个顶点和最后一个顶点相同的简单路径。

5连通图、连通分量、强连通图、强连通分量。

若图G中任意两个顶点之间都有路径相通,则称此图为连通图。图7.2就是一个连通图。

若无向图为非连通图,则图中各个极大连通子图称作此图的连通分量。去掉图7.2中结点BF之间的边,则此连通图变为非连通图,图中有两个连通分量

对于有向图,若任意两个顶点之间都存在一条有向路径,则称此有向图为强连通图。极大连通子图称作强连通分量。图7.1就是一个强连通图。

6)生成树、生成森林。

假设一个连通图有 n 个顶点和 e 条边,其中 n-1 条边和 n 个顶点构成一个极小连通子图,称该极小连通子图为此连通图的生成树。

对非连通图,则称由各个连通分量的生成树的集合为此非连通图的生成森林。