今年跨考上岸了~在准备复试期间受到了csdn上很多博主经验帖和学术帖的帮助
于是我也来回报一下社会,以报前辈们的无私奉献
下面是408各科的专业术语及英文翻译,希望能帮到后辈
DS篇----------------------------------------------------------------------------------------------------------------------
一. 常见术语
数据 Data
数据元素 Data element
数据项 Data item
数据结构 Data structure
逻辑结构 Logical structure
数据类型 Data type
指针 Pointer
顺序存储结构 Sequential storage structure
链状存储结构 Linked storage structure
抽象数据类型 Abstract DataType
算法 Algorithm
指令 instruction
时间复杂度 Time complexity
空间复杂度 Space complexity
线性表 Linear list
顺序表 Sequenatial list
单链表 Single linked list
循环链表 Circular linked lists
双向链表 Double linked lists
双向循环链表 Double circular linked list
前趋 predecessor
后继 successor
双端队列 double-ended queue
循环队列 circular queue
头结点 head node
头指针 head pointer
尾指针 tail pointer
栈 Stack
栈顶 Top
栈底 Botton
后进先出 Last In First Out
上溢 Overflow
下溢 Underflow
共享 Shared
队列 Queue
队尾 Rear
队头 Front
先进后出 First In Last Out
递归 recursion
串 String
子串 Substring
模式匹配 Pattern matching
数组 Arrays
稀疏矩阵 Sparse matrices
特殊矩阵 Special matrices
三元组表 List of 3_tuples
十字链表 Orthogonal list
广义表 Generalized lists
回溯 Backtrack
树 tree
有序树 ordered tree
子树 subtree
森林 forest
根 root
叶子 leaf
结点 node
深度 depth
层次 level
双亲 parents
孩子 children
兄弟 brother
祖先 ancestor
子孙 descentdant
二叉树 binary tree
权值 weight
满二叉树 full binary tree
完全二叉树 complete binary tree
遍历二叉树 traversing binary tree
二叉排序树 binary sort tree
二叉查找树 binary search tree
线索二叉树 thread binary tree
哈夫曼树 Huffman tree
平衡二叉树 banlanced binary tree
平衡因子 Balanced factor
树的遍历 traversal of tree
先序遍历 preorder traversal
中序遍历 inorder traversal
后序遍历 postorder traversal
图 Graph
有向图 Directed graph
无向图 Undirected graph
有向完全图 Undirected Complete Graph
无向完全图 directed complete graph
邻结点 Adjacent node
相邻边 adjacent edge
度 Degree
出度 Outdegree
入度 Indegree
边 edge
顶点 vertex
弧 arc
弧头 head
弧尾 tail
路径 path
回路(环) cycle
连通分量 connected component
连通图 Connected graph
非连通图 unconnected graph
强连通图 strongly connected graph
源点 source
终点 destination
最短路径 shortest path
简单路径 simple path
简单回路 simple cycle
最小(代价)生成树 (minimum) spanning tree
邻接矩阵 adjacency matrix
邻接表 adjacency list
遍历图 traversing graph
最小生成树 Minimum spanning tree
最短路径 Shortest path
有向无环图 Directed acycline graph
加权图 weighted graph
有向无环图 directed acyclic graph
拓扑排序 topological sort
AOV网 activity on vertex network
AOE网 activity on edge network
关键路径 critical path
拓扑排序 Topological sort
Vertices 沃特思思
深度优先索引 Depth-First Search
广度优先索引 Breath-First Search
检索 Searching
关键字 Key
顺序检索 Sequential search
折半检索 Binary search
分块检索 Blocking search
冲突 conflict
直接定址 Immediately allocate
除留余数法 Division method
数字分析法 Digit analysis method
折叠法 Folding method
线性探查 Linear probing
平方取中法 Mid-square method
开放定址法 Open addressing
链地址法 Chaining method
排序 Sorting
直接插入排序 Straight insertion sort
折半插入排序 Binary insertion sort
希尔排序 Shell's sort
冒泡排序 Bubble sort
快速排序 Quick sort
选择排序 Selection sort
直接选择排序 Straight selection sort
稳定性 stability
堆排序 Heap sort
归并排序 Merging sort
二路归并 2_way merge
多路归并 Multi_way merge
基数排序 Radix sorting
最低位优先 (LSD) Least Significant Digit First
最高位优先 (MSD) Most Significant Digit First
匹配 matching
查找 searching
线性查找 linear search
(sequential search)
二分查找 binary search
分块查找 block search
散列查找 hash search
平均查找长度 average search length
二. 名词解释
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,它分为三个方面,即数据的逻辑结构logical struture,数据的物理结构 physical structure,数据的操作。
数据项:是数据不可分割的最小单位(minimal unit)。
抽象数据类型:是基于一类逻辑关系的数据类型以及定义在这个类型之上的一组操作。
逻辑结构:是数据元素之间逻辑关系的描述。Description of the logical relationship of data elements
物理结构(存储结构):数据结构在计算机中的存储方法。Ways of data structure to store in computer
算法:是对特定问题求解步骤的一种描述,它是指令的有限finite sequece序列。
线性表linear list:它用一组地址连续的存储单元存储数据元素,uses a set of memory units with contiguous addresses stores the data elements 除首尾元素外,每个元素有唯一的前驱和唯一的后继。Each element has a unique predecessor and successor, except for the first and last elements.
顺序表:采用线性存储结构的有序表 Ordered tables with a linear storage structure
链表:采用链式存储结构的线性表。Linear list with a linked storage structure
结点:由数据元素和指示其后继结点地址的信息组成的存储映像称为结点。
表长:表中元素的个数称为表的表长。
循环链表:是一种链式存储结构,它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。
双链表:采用链式存储结构的线性表,每个结点除一个数据域外,还有两个指针域,其一指向直接前驱,另一指向直接后继。
静态单链表:是利用一块连续的空间,按链表的存储方式组织数据,按顺序存储结构分配空间,所构成的一种链表。
头指针:是指向链表表头结点的指针,只要链表存在,该指针始终不会改变,单链表由头指针唯一确定,因单链表可以用头指针的名字来命名。
头结点:在链表的开始结点之前附加的一个结点,是链表的表头,当链表不空时,其内的指针指向链表的第一个结点,当链表是空链表时,该指针为空指针。
栈:also known也叫后进先出表,是limits inserts and deletes to the bottom of the table限定仅在表尾进行插入和删除操作的线性表,表尾端称为栈顶,表头端称为栈底
顺序栈:采用顺序存储结构的栈称为顺序栈
链栈:采用链式存储结构的栈称为链栈
队列:是一种先进先出的线性表,它只允许在表的一端进行插入,而另一端删除元素,允许插入的一端叫做队尾,允许删除的一端称为队首。
链队列:用链表示的队列,需要两个指针分别指示队头和队尾
循环队列:队列是"先进先出表”,随着入队出队的进行,会使整个队列整体移动,当队尾指针移到最后,若再有元素入队就会出现“假溢出”,因为此时队头部分还有空间可用,循环队列是将队列的数据区看成头尾相接的循环结构,可解决“假溢出”
双端队列:是限定插入、删除在表的两端进行的线性表。Imlits inserts and deletes to the top and bottom of the table
队列的应用:杨辉三角
栈的应用:数制转换,括号匹配,表达式求值,汉诺塔(递归用栈实现)
递归:递归的思想是把一个大型复杂问题层层转化为比原问题规模更小的问题,直到子问题无需进一步递归就可以解决的地步为止。ta采用直接调用自己或间接调用自己的方法解决问题。为了保证递归函数正确执行,系统需要设立一个“递归工作栈”作为数据存储区,在每一次执行调用函数前,系统会完成三件事:保护现场(参数+地址)、分配/释放存储区、转移调用入口/返回地址到调用函数。
串:是由零个或多个字符組成的有限序列.
子串:串中任意个连续的字符组成的子序列称作该串的子串
子串在主串中的位置:子串的第一个字符在主串中的位置表示
串和线性表的区别?
串的逻辑结构与线性表极为相似,区别仅在于串的数据对象约束为字符集,然而串的操作与线性表有很大的差别,在线性表基本操作中,大多以单个元素作为操作对象;而在串的基木操作中通常以“串的整体”作为操作对象
广义表:是由零个或多个单元素或子表所构成的有限序列,是线性表的推广,也有人称其为列表
数组:类型一致的有限个数据元素按顺序连续存储
矩阵的压缩存储:有的矩阵中有许多值相同元素或者是零元素,为了节省存储空间,对这类矩阵采用多个值相同的元素只分配一个存储空间,称为矩阵的压缩存储
特殊矩阵:值相同的元素或者零元素在矩阵中的分布有一定规律的矩阵称为特殊
稀疏矩阵:非零的数据元素个数很少的矩阵称为稀疏矩阵
对称矩阵:一个n阶方阵,若满足aij=aji,则称该矩阵为对称矩阵
三角矩阵:主对角线上方和下方的元素(不包括对角线)均为常数或零元素的矩阵
行表:记录稀疏矩阵中每行非零元素在三元组表中的起始位置的表
三元组表:若线性表顺序存储的每一个结点均是三元组,则该线性表的存储结构称为三元组表
广义表和线性表的区别?
1广义表是线性表的推广,是由零个或多个单元素或子表所构成的有限序列
2.线性表的成分都是结构上不可分制的单个数据元素,而广义表的成分既可以是单元素,也可以是有结构的表其定义是递归的定义
树:是n个结点的有限集合,n≥0,有且只有一个称为根的结点,根结点无前驱
有序树:树中结点的各子树看成是从左至右依次有序的,且不能交换
森林:m(m≥1)棵互不相交的树的集合
二叉树:是一种树型的结构,它的特点是每个结点至多有两棵子树,且有左右之分,不可任意颠倒。
满二叉树:是一棵深度为k的,且有(2^k)-1个结点的二叉树
遍历二叉树:是按照accoring to a certain search path某种搜索路径访问二叉树中的每个结点
线索二叉树:由每个结点中包含左指针,左标志位,数据域,右标志位,右指针五部分组成的二叉链表,叫做线索链表,指向前驱或后继的指针叫做线索,以二叉树某种遍历顺序给空指针加线索的过程叫做线索化,线索化了的二叉树称为线索二叉树。
哈夫曼树:是一类带权路径长度Weighted path length最短minimum的树.
哈夫曼树建立:1.在二叉树集合F中,选取两颗根节点的权值最小的树作为左右子树构造一棵新的二叉树,且新二叉树的根结点权值为其左右子树根结点权值之和。
2.在F中删除这两棵树,同时将新得到的二叉树加入F中
3.重复1和2,直到F只含一棵树为止。
哈夫曼编码:在哈夫曼树中,约定左分支代表0,右分支代表1,把根结点leaf node到叶子结点root node的路径path上的分支字符连接,组成的字符串称为该叶子结点的哈夫曼编码,这就是哈夫曼编码.
二叉排序树:或者是空树,或者是符合以下性质的二叉树
1.若它的左子树不空,则左子树上所有结点均小于它的根结点值
2.若它的右子树不空则右子树上所有结点均大于它的根结点值.
平衡二叉排序树(AVL树):或者是空树,或者是符合一下性质的二又排序树
1.左子树和右子树的高度之差的绝对值小于等于1
2.左子树和右子树也是平衡二叉排序树
树的遍历方法:先根遍历和后根遍历
先序中序后序遍历原理:使用递归的方法遍历自己,若二叉树为空,则返回空操作。否则 访问根结点,先序遍历左子树,先序遍历访问右子树。
Use a recursive method to traverse itself, it will return an empty operation if the binary tree is empty. Otherwise, it will access the root node, traverse the left subtree in the pre-order , andr traverse the right subtree in the pre-order.
图:图G由两个集合V和E组成,记为G=(V,E),其中V是顶点的有穷非空集合,E是由V中顶点的序偶组成的有穷集,这些序偶称为边或弧
顶点:图中的数据元素称为顶点
完全图:边数恰好等于n(n-1)/2的n个顶点的无向图称为完全图(无向图中任意两个顶点之间都有一条边相连,称该图为完全图)
有向完全图:有n(n-1)条边的有向图称为有向完全图(图中每个顶点和其余n-1个顶点都有弧相连)
入度:以顶点V为头的弧的数目称为V的入度
出度:以顶点V为尾的弧的数目称为V的出度
连通图:在无向图中,任意两个顶点之间都有路径相通
强连通图:在有向图中,任意两个顶点之间都有来回路径相通
简单路径:一条路径上除了开始顶点和结束顶点外,其余顶点均不相同
弧头:边的终点称为弧头
弧尾:边的始点称为弧尾
生成树:生成树是无向连通图undircted connected graph的一个极小连通子图minimum connected subgraph,它含有图中的全部顶点。
邻接矩阵:表示图中结点之间关系的矩阵称为邻接矩阵
邻接表:由顶点数据表和表示数据关系的边(弧)构成的表
图的遍历:从某一顶点出发按序访问图中所有结点,且使每个结点仅被访问一次
最小生成树:无向网中边上权值之和为最小的生成树
有向无环图:无回路的有向图。
关键路径:在AOE网中,从源点source到汇点destination的最长路径longest path称为关键路径
AOE网:用顶点表示事件,用弧表示活动,弧的权值表示活动所需的时间,构造的有向网称为AOE网
拓扑排序的基本步骤
拓扑排序算法主要是循环执行mainly performs 以下两步the following two step in the loop,直到until no nodes with不存在入度为0的顶点。Indegree of 0 exist
(1) 选择一个入度为0的顶点并输出之;(2) 从网中删除remove此顶点及所有出边outflows form the network;
循环结束后after the end of the loop,we can get the topological sequence,otherwise knowing the existence of loops.
DFS(深度优先搜索遍历)的基本思路
1.首先选定一个an unvisited vertex未被访问过的顶点V作为as starting vertex起始顶点,并将其标记marks it为已访问过;as visited
2.搜索与顶点V邻接的所有顶点search for all vertices adjacent to vertex V,判断这些顶点是否被访问过determine whether these vertices have been accessed,如果有未被访问过的顶点if there is any vertex has been not visited,则选择该结点并进行访问。再将该结点作为起始结点,重复过程1.当一个顶点的所有邻接顶点都被访问过时all vertices adjacent to a vertex,则依次退回上一个顶点V。Last vertex V is returned in turn.
3.若此时图中仍有顶点未被访问,则重复1、2过程process 1and 2,直到图中所有顶点都被访问过为止。
BFS(广度优先搜索遍历)的基本思路
1.从图中某个顶点Vo出发starting from a certain vertex vo in the figure,首先访问Vo,依次访问Vo的各个未被访问的邻接点.and visit the adjacent unvitied vertices of vo
2.分别从这些邻接点出发from each of these vertices,依次in turn访问各个未被访问的邻接点
3.重复步骤2,直到所有结点均没有未被访问的邻接点until all nodes have no unvisited adjacent vertices
査找表:是由同一类型的数据元素或记录构成的集合
静态査找表:査询某个特定的数据元素是否在査找表中,检素某个特定的数据元素的各种属性
动态査找表:在查找过程中同时插入查找不存在的数据元素,或者从査找表中删除已存在的某个数据元素
平均査找长度(ASL):为确定数据元素在査找表中的位置,需和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度.
冲突:两个不同的关键字,其散列函数值相同,因而被映射到同一表位置的现象称为冲突
哈希函数的构造方法:直接定址法(取关键字或其线性函数值作为哈希地址),数字分析法(关键字都是事先知道的,根据关键字特性来决定哈希地址),平方取中法(平方后的中间几位),折叠法(把关键字分成好几部分,取这几部分的叠加和作为哈希地址),除留余数法(关键字%不大于表长的数p)和随机数法.
哈希函数处理冲突的方法:开放地址法Hi=[H(key)+di]%m表长(线性探测再散列di=1,2…m-1、二次探测再散列di=xx平方、di为伪随机数伪随机探测再散列),再哈希法,链地址法(将所有关键字为同义词的记录存储在同一线性链表中),建立一个公共溢出区。
顺序查找的基本思路:对于给定的关键字k,从线性表的第一个元素开始依次向后与记录的关鍵字域相比较,如果某个记录的关键字等于k,则查找成功,否则查找失败,平均查找长度ASL=3(n+1)/4.
折半(二分)查找的基本思路:先取表的中间位置的记录关键字和所给关键字进行此较,若相等,则查找成功,如果给定关键字比该记录的关键字小,则说明所要查找的记录只可能在表的前半部分,反之,则在后半部分,重复步骤,每一次比较就可以将查找范围缩小一半,直到找到给定的关键字的记录,查找成功,找不到为查找失败,平均查找长度 ASL=log2(n+1)-1
分块查找(索引顺序表查找)的基本思路:先确定待査记录所在的块(子表)然后在块block中查找.平均查找长度ASL=1/2(n/s)+1]+s/2
哈希查找(散列查找)的基本思路:在进行查找时,在记录的存储位置与它的关键字之间建立一个确定的对应关系h,计算出每个元素的存储位置,我们将h函数称为散列函数或哈希函数,这种査找方法称为散列查找或哈希查找。
排序:就是按关键字值的递增或递减的次序,把文件中的各记录一次排列起来,可使一个无序文件变成有序文件的一种操作
排序算法的稳定性:相同元素排序前后的相对位置没有发生变化,则为稳定,反之为不稳定
内部排序:在排序过程中,所有待排序记录都放在内存中进行的排序称为内部排序
外部排序:当待排序的记录很多,以致于内存一次不能容下所有记录,在排序过程中需要对外存进行访问的排序
通常情况下,排序分为比较、移动两个部分,而后一部分可以用线性表、静态链表。地址排序(只变地址,记录本身不变)
直接插入排序的基本思想:直接插入排序是一种最简单的排序方法,基本操作是将条记录插入到已排好的有序表中,从而得到一个新的,记录数量増一的有序表
时间复杂度O(n^2).空间复杂度O(1)直接插入排序是稳定的
希尔排序的基本思想:先将整个待排元素序列分割成若干子序列分别进行直接插入排序,然后依次缩减增量再进行排序,整个序列中的元素基本有序时,再对全体元素进行一次直接插入排序,实质就是分组直接插入排序
时间复杂度O(n^2)
空间复杂度O(1)希尔排序是不稳定的。
冒泡排序的基本思想:每轮在待排记录中将最大或最小的记录沉底sink或上浮float。直到某一趟中没有任何记录移动。
时间复杂度o(n^2).空间复杂度O(1)冒泡排序是稳定的。
快速排序的基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部的所有数据都要小,然后再按此方法对这两部分数据进行快速排序。整个排序过程可以递归进行,以达到整个序列有序。若元素基本有序,退化为冒泡
时间复杂度O(nlogn) 空间复杂度O(nlogn)快速排序是不稳定的。
直接选择排序的基本思想:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置交换,接着对其他记录进行第二轮比较,得到最小的记录并与第二个记录的位置交换,重复该过程,直到进行比较的记录只有一个时为止.
时间复杂度O(n^2).空间复杂度O(1).直接选择排序是不稳定的。
优化:减少关键字的比较,引入树形选择排序,即堆排序。
堆排序的基本思想:堆排序是指利用堆积树这种数据结构所设计的一种排序算法,它是选择排序的一种,可以利用数组的特点快速定位索引的元素,堆分为大根堆和小根堆,是完全二叉树.
堆通常是一个可以被看做一棵完全二叉树的数组对象。
- 堆中某个结点的值总是不大于或不小于其父结点的值;
- 堆总是一棵完全二叉树。
时间复杂度o(nlogn).空间复杂度O(1)堆排序是不稳定的
归并排序的基本思想:将待排序序列看成是n个有序序列,然后两两归并,得到n/2个长度为2的有序表;将这些有序表再次归并,如此重复进行下去,最后得到一个长度为n的有序序列.
时间复杂度O(nlogn).空间复杂度O(n)归并排序是稳定的
基数排序的基本思想:借助"分配"allocation和"收集"collection两种操作对单逻辑(LSD或MSD)关键字进行排序
时间复杂度o(d*n).空间复杂度O(r*d).基数排序是稳定的。
外部排序的基本思想:首先按内存的可用大小将外存n个数据分为L个段,依次读入内存进行排序,得到归并段并写入外存。然后对这些归并段进行逐趟排序,使归并段逐渐由小到大,直至整个有序文件为止。
总时间=产生初始归并段的时间+外存读写时间+内存归并时间
败者树:使在k个记录中选择最小关键字仅需logk次比较,解决了增加增加k路但是导致内部归并时间增多的问题。
置换-选择排序:对初始归并段个数m的优化,为了减少m用的,
FI,FO,WA,MINIMAX。首先在WA中选择最小的作为MINIMAX并输出到FO,把WA补全(FO顺延)后再选择一个最小的且大于MINIMAX的数,设为新的MINIMAX并输出。直到一个初始归并段的完成。
//未补充的:红黑树、并查集
好了有空再更其他的吧 懒瘾犯了