数据结构(C语言版) 期末复习汇总
第一章 绪论
数据结构:是研究非数值计算程序设计中的操作对象,以及这些对象之间的关系和操作的学科。
数据结构的综合性和重要性:数据结构是一门介于数学、计算机硬件、计算机软件之间的核心课程,是设计和实现编译系统、操作系统、数据库系统及其他系统程序和大型应用程序的基础。
数据的逻辑结构划分:线形结构、树形结构、图状结构。
算法的定义及特性
算法:为了解决某类问题而规定的一个有限长的操作序列。
算法的五个特性:有穷性、确定性、可行性、输入、输出。
评价算法优劣的基本标准:正确性、可读性、健壮性、高效性及低存储量。
第二章 线性表
线性表的定义和特点:线性表是由n(n≥0)个数据特性相同的元素构成的有限序列。
线性表的操作:插入、删除等。
顺序表的插入和删除:需要移动元素,存在优缺点。
线性表的应用:如线性表的合并等。
第三章 栈和队列
栈的类型定义:栈是限制在表的一端进行插入和删除运算的线性表。
栈的特点:后进先出(LIFO)。
队列的类型定义:队列是限定在表的一端进行插入,在表的另一端进行删除的线性表。
队列特点:先进先出(FIFO)。
第四章 串、数组和广义表
串的定义:串是一个有穷字符序列。
广义表的定义:广义表是n个元素的有限序列,其中元素可以是原子项或子表。
广义表的两个重要运算:取表头和取表尾。
第五章 树和二叉树
树的基本术语和定义:树是n个结点的有限集,其中有一个特定的结点为根,其余结点形成m个互不相交的子树。
二叉树的定义和性质:二叉树是每个结点至多有二棵子树的树结构。具有特定的性质如结点的度、深度等。
完全二叉树的定义和特点:完全二叉树是深度为h的二叉树,其叶子结点只可能在层次最大的两层上出现。具有特定的遍历方式和性质。
遍历二叉树的方法:先序遍历、中序遍历和后序遍历。
先序遍历
A.B.E.F.I.G.C.D.H.J.K.L.N.O.M
后序遍历
E.I.F.G.B.C.J.K.N.O.L.M.H.D.A (P105贴纸(2))
层次遍历
A.B.C.D.E.F.G.H.I.J.K.L.M.N.O
赫夫曼树遍历
例:对于给定的权值集合 W={ 5,29,7,8,14,23,3,11 } 的遍历序列。
图的相关概念与操作
第六章 图的相关知识
图是由节点(或称为顶点)和边组成的集合,记为:G=(V,E),其中 V 是顶点的非空有限集,E 是边的有限集合。
有向图与无向图
无向图中,顶点的度为与每个顶点相连的边数;而有向图中,顶点的度分为入度和出度。
入度:以该顶点为头的弧的数目。
出度:以该顶点为尾的弧的数目。
还涉及路径、路径长度、回路、简单路径、简单回路、连通、连通图、连通分量等概念。
邻接表与深度优先遍历
深度优先遍历是一种用于图的遍历算法。从某一顶点出发,尽可能深地探索图的分支。当当前顶点的所有邻接点都已访问过后,算回溯到上一个顶点继续探索其未访问过的邻接点。
图的广度优先遍历
广度优先遍历与深度优先遍历不同,它从某一顶点出发,首先访问其所有未被访问过的邻接点,然后对这些邻接点进行广度优先的遍历。
图一至图四的广度和深度遍历说明...
查找算法 - 折半查找法(考图形过程)
(1)有序表 { 5,16,20,27,30,36,44,55,60,67,71 } 的折半查找过程...
排序算法 - 冒泡排序法
排序过程...
冒泡排序通过多次遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
C语言冒泡排序法实现...
include<stdio.h>
void bubbleSort(int a[], int n)
{
// 冒泡排序算法实现...
}