开发工具与关键技术:总结
作者:Mr_恺
撰写时间:2020.5.16
5.0:数组
3、二维数组理解:一维数组的每个元素都是一维数组。
4、矩阵:
5、稀疏矩阵一般的压缩存储方法有两种:三元组和十字链表
6.0:树
树形结构是一种应用十分广泛的非线性结构,客观世界中广泛存在的。
1、树的定义:
树由n(n>=0)个结点组成的有限集合T
如果n=0,称树为空;
如果n>0,则满足;
2、树的基本术语:
3、在不同的应用场合,可以用不同的方法来表示树,常用的方法有一下几种:
6.1:二叉树
1. 二叉树是最简单的树形结构,所有的一般树都可以转换为二叉树,转换后的二叉树也能按一定规则还原为一般树。
2. 定义:二叉树是树形结构中的一种最典型、最常用的结构,处理起来比一般树简单,而且树也可以很容易地转换成二叉树。
3. 二叉树是n(n>=0)个结点的有限集合BT,它或者是空集,或者由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树组成。
4. 二叉树的基本操作:
6.2:二叉树的遍历
一颗二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。每个结点最多只有两个孩子。
用一组连续的存储单元存放二叉树中的元素,即按满二叉树的形式存放一维数组中。
最常用的是二叉链表的三叉链表
二叉链表的每个结点有一个数据域和两个指针域,
一个指针指向左孩子,另一个指向右孩子。
哈夫曼树的基本概念:
路径长度:两个结点之间的路径长度是链接两结点的路径上的分支数
树的路径长度:根结点到个结点的路径长度之和
特点:哈夫曼树中没有度为一的结点
7.0:图
1.图结构是一种比树形结构更复杂的非线性结构,任意一个结点都可以有任意多个前驱和后继。图结构是一种重要的数据结构。
定义:图是由顶点和边组成,顶点表示图中数据元素,边表示数据元素之间的关系,记为
Graqh=(V,E)
其中 V是顶点的非空有穷集合;E是用顶点对表示边的有穷集合,可以为空
2.图的基本术语:
3.邻接矩阵概念:
邻接矩阵这种存储结构采用两个数组来表示图,一个是一维数组,存储图中的所有顶点的信息:另一个是二维数组,即邻接矩阵,存储顶点之间的关系。
4 . 图的遍历:从图的某一个顶点出发遍历图中其余顶点,且使每一顶点仅被访问一次
5 . 遍历图的基本方法:
深度优先搜索DSF( Depth First Search )
广度优先搜索BFS( Breadth First Search )
8.0查找:
静态查找是指在静态查找表上进行的查找操作,查找满足条件的数据元素的存储位置或各种属性。
一、顺序查找
基本思想:1.查找表的存储结构是线性表(顺序表或链表)
2.查找过程是依次用查找条件中给定的值与查找表中数据元素的关键字值进行比较。
二、折半查找
折半查找只适合用于对有序顺序表进行查找。
折半查找的基本思想是:
小结:
三、动态查找
特点:表结构是在查找中动态生成,对于给定值k,如表中存在,则查找成功;否则在适当的位置插入k
动态查找的结构主要有二叉树结构和树结构两种类型
四、哈希查找
哈希表又称散列表
哈希表存储的基本思想
以每个记录的关键字k为自变量,通过一种函数H(K)计算出一个函数值
哈希表说明
通过关键字直接得到记录的存储地址
理想的哈希函数是在关键字和存储地址之间建立一一对应,从而使得查找只需一次计算即可完成。但由于关键字值的某种随机性,使得这种一一对应关系难以发现或构造。因而可能会出现不同关键字对应一个存储地址。即k1≠k2,但H(k1)=H(k2),这种现象称为冲突。
把这种具有不同关键字值而具有相同哈希地址的对象称“同义词”
采用的处理冲突的方法有开放地址法、链地址法两大类
9.0排序:
一、直接插入排序
二、快速排序
(1)快速排序是一种交换排序。
(2)快速排序的基本思想是:
从待排序序列的n个记录中任取一个记录Ri 作为基准记录,以基准记录为界限,将待排序序列划分成两个子序列,所有关键字小于Ki 的记录移到Ri 的前面,所有关键字大于K 的记录移到Ri 的后面,这个过程称作一趟快速排序;然后用同样的方法对两个子序列排序,得到4个子序列;依次类推,直到每一个子序列只有一个记录的为止,此时就得到n个记录的有序序列。
(3)快速排序算法的时间效率:
快速排序算法的时间效率取决于划分子序列次数,对于有n个记录的序列进行划分,共需n-1次关键字的比较,在最好情况下,假设每次划分得到两个大致等长的记录子序列,时间复杂度为O(log2n)。快速排序是一种不稳定的排序方法。
三、选择排序