《数据结构与算法》——名词解释总结

考研题型里有一个题型叫做名词解释,这道题或多或少的咋试卷中占着一定的分量,但是分数又不是太多,用大量的大块时间来搞这个有点不太值当,所以抽些时间做个总结文档,用于空闲时间查看。

本文中概念不全,仅总结了个人易混淆及常考的概念。

 

名词解释

数据:是对客观事物的符号表示。

数据元素:是数据的基本单位,也称节点(node)或记录(record)。

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

数据项:有独立含义的数据最小单位,也称域(field)。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

逻辑结构:抽象反映数据元素之间的逻辑关系。

物理结构:数据结构在计算机中的表示。(存储结构)

算法:对特定问题求解步骤的一种描述。

算法设计原则:正确性,可读性,健壮性,效率与低存储量需求。

空串:零个字符的串;

 

树的度:树中所有结点的度的最大值;

分支结点: 度大于零的结点

树的深度:树中叶子结点所在的最大层次

森林:m棵互不相交的树的集合。

满二叉树:指的是深度为k且含有2k-1个结点的二叉树。

完全二叉树:树中所含的 n 个结点和满二叉树中编号为 1 至 n 的结点一一对应。

路径长度:路径上分支的数目。树的路径长度:树根到每个结点的路径长度之和。

树的带权路径长度:树中所有叶子结点的带权路径长度之和,记作:WPL(T) = Swklk

带权路径长度最小的二叉树,称为最优树二叉树或赫夫曼树

关键路径:路径长度最长的路径。

 

顶点:数据元素vi称为顶点

边、弧:P (vi,vj)表示顶点vi和顶点vj之间的直接连线,在无向图中称为边,在有向图中称为弧。任意两个顶点构成的偶对(vi,vj)∈E是无序的,该连线称为边。是有序的,该连线称为弧。

弧头、弧尾:带箭头的一端称为弧头,不带箭头的一端称为弧尾。

顶点的度(TD)=出度(OD)+入度(ID)

图的遍历算法是求解图的连通性问题、拓扑排序和求关键路径等算法的基础。

通常有两条遍历图的路径:深度优先搜索和广度优先搜索。

排序的分类:

按待排序记录所在位置

    内部排序:待排序记录存放在内存

外部排序:排序过程中需对外存进行访问的排序

 

ADT抽象数据型是一个数学模型和在该模型上定义的操作的集合

线性表: 线性表是由n(n≥0)个相同类型的元素组成的有序集合。

栈:线性表的一种特殊形式,是一种限定性数据结构,也就是在对线性表的操作加以限制后,形成的一种新的数据结构。是限定只在表尾进行插入和删除操作的线性表。栈又称为后进先出的线性表。

队列:将线性表的插入和删除操作分别限制在表的两端进行,和栈相反,队列是一种先进先出的线性表。

串:线性表的一种特殊形式,表中每个元素的类型为字符型,是一个有限的

字符序列。

广义表:由零个原子,或若干个原子或若干个广义表组成的有穷序列。

树:1、一个结点x组成的集{x}是一株树(Tree),这个结点x也是这株树的根。

2、假设x是一个结点,T1,T2,…,Tk是 k 株互不相交的树,我们可以构造一株新树:令x为根,并有k条边由x指向树T1,T2,…,Tk。这些边也叫做分支,T1,T2,…,Tk称作根x的树之子树。

二叉树:有限个结点的集合,这个集合或者是空集,或者是由一个根结点和两株互不相交的二叉树组成,其中一株叫根的做左子树,另一棵叫做根的右子树。

满二叉树:深度为k且有2k -1个结点的二叉树称为满二叉树。

完全二叉树:深度为 k 的,有n个结点的二叉树,当且仅当其每个结点都与深度为 k 的满二叉树中编号从 1 至 n 的结点一一对应,称之为完全二叉树。

线索二叉树:若结点p有左孩子,则p->lchild指向其左孩子结点,否则令其指向其(中序)前驱。若结点p有右孩子,则p->rchild指向其右孩子结点,否则令其指向其(中序)后继。

堆:如果一棵完全二叉树的任意一个非终端结点的元素都不小于其左儿子结点和右儿子结点(如果有的话)的元素,则称此完全二叉树为最大堆。

        同样,如果一棵完全二叉树的任意一个非终端结点的元素都不大于其左儿子结点和右儿子结点(如果有的话)的元素,则称此完全二叉树为最小堆。

选择树:一棵选择树是一棵二叉树,其中每一个结点都代表该结点两个儿子中的较小者。这样,树的根结点就表示树中最小元素的结点。

 二叉排序树:二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:

1、若它的左子树非空,则左子树上的所有结点的值均小于它的根结点的值。

2、若它的右子树非空,则右子树上的所有结点的值均大于或等于它的根结点的值。

3、它的左右子树分别为二叉排序树。

图:一个图G=(V,E)是一个由非空的有限集 V和一个边集E所组成的。若E中的每条边都是顶点的有序对(v , w),就说该图是有向图(directed graph,digraph)。若E中的每条边是两个不同顶点无序对,就说该图是无向图,其边仍表示成(v, w)。

开放树:连通而无环路的无向图称作开放树。

最小生成树:设G=( V, E )是一个连通图,E中每一条边(u, v)的权为C(u, v),也叫做边长。图G的一株生成树(spanning  tree)是连接V中所有结点的一株开放树。将生成树中所有边长之总和称为生成树的价(cost)。使这个价最小的生成树称为图G的最小生成树。

无向图双连通分量:设Vi 是 Ei 中各边所连接的点集(1≤i≤k),  每个图Gi = ( Vi   ,  E i)叫做 G 的一个双连通分量。

双连通图:若对V中每个不同的三元组v,w,a;在v和w之间都存在

              一条不包含a 的路,就说G是双连通的

 强连通性:设G =(V, E)是一个有向图,称顶点v ,w∈V是等价的,要么v = w;要么从顶点v 到w 有一条有向路 ,并且从顶点w 到v 也有一条有向路。

拓扑排序:给定一个无环路有向图G=(V,E) , 各结点的编号为v=(1,2, …,n)。要求对每一个结点i  重新进行编号,使得若i 是j 的前导,则有Label[i]<label[j]。即拓扑分类是将无环路有向图排成一个线性序列,使当从结点i 到结点j 存在一条边,则在线性序列中,将i 排在j 的前面。

AOE网:在带权的有向图中,用结点表示事件,用边表示活动,边上权表示活动的开销(如持续时间),则称此有向图为边表示活动的网络,简称AOE网。

关键路径:在AOE网中,由于有些活动可以并行,所以完成工程的最短时间是从源点到汇点的最大路径长度。因此,把从源点到汇点具有最大长度的路径称为关键路径。

查找表:由同一类型的数据元素(或纪录)构成的集合。

关键字:数据元素中某一数据项的值,用以表示一个数据元素。

AVL树:AVL树或者是一颗空二叉树,或者具有如下性质的二叉查找树:

            其左子树和右子树都是高度平衡的二叉树,且左子树和右子树高度之差的绝对值不超过1。

    B-树:B-树是一种非二叉的查找树除了要满足查找树的特性,还要满足以下结构特性:一棵m 阶的 B- 树:

(1)树的根或者是一片叶子(一个节点的树),或者其儿子数在 2 和 m 之间。

(2)除根外,所有的非叶子结点的孩子数在m/2 和m 之间。

(3)所有的叶子结点都在相同的深度。

B+树:B-树的一种变形,二者区别在于:

           1、有k个子结点的结点必然有k个关键码;

           2、非叶子结点仅具有索引作用,与记录有关的信息均放在叶结点中。

地址散列法:被查找元素的存储地址 = Hash ( Key )。

堆分类:把具有如下性质的数组A表示的二元树称为堆(Heap):

            (1) 若2*i≤n,则A[i].key ≤ A[2*i].key ;

            (2) 若2*i+1≤n,则A[i].key≤A[2*i+1].key;       小顶堆

            把具有如下性质的数组A表示的二元树称为堆(Heap):

            (1) 若2*i≤n,则A[i].key ≥ A[2*i].key ;

            (2) 若2*i+1≤n,则A[i].key≥ A[2*i+1].key;      大顶堆

词典排序:设集合S 中的元素为整数元组,关系 ≤ 为S 的线性序,对两个元素( s1,s2,…,sp )  和  ( t1,t2,…,tq )   存在   ( s1,s2,…,sp )  ≤  ( t1,t2,…,tq ) , 当存在一个整数j,1≤j≤max[p,q],使得sj≤tj,且所有1≤i<j,si=ti;或者p≤q,并且si=ti,1≤i≤p,则关系≤  称为词典序。

归并方法:首先将文件中的数据输入到内存,采用内部分类方法进行分类(归并段),然后将有序段写回外存;对多归并段进行多遍归并,最后形成一个有序序列。

索引: 指的是记录的关键字值与记录驻留在外存的地址组成数对的集合。每个数对称为一个索引项。

 

数据结构学科? 数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。

数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类型的主要特点是什么?使用抽象数据类型的主要好处是什么? 数据类型是程序设计语言中的一个概念,它是一个值的集合和操作的集合。

 

对于一个数据结构,一般包括哪三个方面:逻辑结构、存储结构、操作(运算)。

 

循环队列 用常规意义下顺序存储结构的一维数组表示队列,由于队列的性质(队尾插入和队头删除),容易造成“假溢出”现象,即队尾已到达一维数组的高下标,不能再插入,然而队中元素个数小于队列的长度(容量)。循环队列是解决“假溢出”的一种方法。通常把一维数组看成首尾相接。在循环队列下,通常采用“牺牲一个存储单元”或“作标记”的方法解决“队满”和“队空”的判定问题。

 

从数据结构角度讲,串属于线性结构。与线性表的特殊性在于串的元素是字符。

从逻辑上讲,树和广义表均属非线性结构。但在以下意义上,又蜕变为线性结构。如度为1的树,以及广义表中的元素都是原子时。

 

内部排序  若整个排序过程都在内存中完成,则称此类排序问题为内部排序。

文件 文件是由大量性质相同的记录组成的集合,按记录类型不同可分为操作系统文件和数据库文件。

文件存储结构的基本形式有哪些?一个文件采用何种存储结构应考虑哪些因素? 文件的基本组织方式有顺序组织、索引组织、散列组织和链组织。文件的存储结构可以采用将基本组织结合的方法,常用的结构有顺序结构、索引结构、散列结构。

索引文件 在主文件外,再建立索引表指示关键字及其物理记录的地址间一一对应关系。这种由索引表和主文件一起构成的文件称为索引文件。索引表依关键字有序。

 

参考书籍及网址

1. 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京: 清华大学出版社,2013.

2. https://wenku.baidu.com/view/74033056f01dc281e53af0e7.html

3. https://wenku.baidu.com/view/c5c24b1ed15abe23492f4d0d.html

 

  • 9
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值