数据结构名词解释详细总结

数据结构名词解释总结

  1. 数据:一切能够由计算机接受和处理的对象
  2. 数据元素:是数据的基本单位,在程序中作为一个整体加以考虑和处理
  3. 数据项:数据项是不可分割的最小单位
  4. 数据对象:具有相同性质的数据元素的集合
  5. 数据类型:是一个值的集合和定义在此集合上一组操作的总称
  6. 抽象数据类型(ADT):一个数据模型和定义在模型上的一组操作
  7. 数据结构:数据之间存在一种或多种特定逻辑关系,这些数据元素所构成的逻辑结构,称为数据结构
  8. 逻辑结构:数据结构逻辑关系的描述,没有考虑到其计算机中的具体实现
  9. 存储结构(物理结构):是指逻辑结构在计算机中的存储映像,是逻辑结构在计算机中的实现,包括数据的表示和关系的表示。
  10. 顺序存储结构:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系
  11. 链式存储结构:借助指示元素存储地址的指针表示数据元素之间的逻辑关系
  12. 算法:解决某一特定问题的具体步骤的描述,是指令的有限、有序序列
  13. 时间复杂度:算法中基本操作重复执行的次数的阶数, ,通常指最坏情况下时间复杂度
  14. 空间复杂度:为算法所需的存储空间的度量,记作S(n)=O(f(n))
  15. 线性表是具有n个相同类型数据元素的有限序列,n为表长,n=0是空表
  16. 线性表:是n个数据元素的有限序列,除首尾元素外,每个元素都有唯一的前驱和后继
  17. 单链表的定义:每个链表结点除了存放自身信息,还存放指向其后继结点的指针;顺序存取,从表头开始查找
  18. 栈的定义:栈是一个操作受限的线性表,只允许在一端进行插入和删除操作的线性表。栈的特点是后进先出
  19. 队列的定义:是一个操作受限的线性表,只允许在表的一端插入在另一端删除,入队和出队,队列的特点是先进先出
  20. 循环队列:把队列的头和尾连接在一起,从而构成一个环状,实现了有空余空间就可以入队的操作
  21. 稀疏矩阵:非零元较零元少,且分布没有一定规律的矩阵
  22. 广义表:是一种特殊的线性表,表中的数据元素既可以是原子,也可以是子表,记作L=(a1,a2,…,an);
  23. :树是由n(n>=0)个节点组成的有限集合,若n=0称为空树
  24. 结点: 树的结点包含一个数据元素及若干指向其子树的分支
  25. : 一个结点包含子树的数目,称为该结点的度。
  26. 叶子(终端)结点:度为0的结点,称为叶子结点或树叶,也叫终端结点
  27. 孩子结点:若结点X有子树,则子树的根结点为X的孩子结点,也称为孩子,儿子,子女等。
  28. 双亲结点:若结点X有子女Y,则X为Y的双亲结点。
  29. 祖先结点:从根结点到该结点所经过分支上的所有结点为该结点的祖先
  30. 子孙结点:某一结点的子女及子女的子女都为该结点子孙。
  31. 兄弟结点:具有同一个双亲的结点,称为兄弟结点。
  32. 分支结点:除叶子结点外的所有结点,为分支结点,也叫非终端结点。(度不为0的结点)
  33. 层数(层次):根结点的层数为1,其它结点的层数为从根结点到该结点所经过的分支数目再加1。
  34. 树的高度(深度):树中结点所处的最大层数称为树的高度,如空树的高度为0,只有一个根结点的树高度1。
  35. 树的度:树中结点度的最大值称为树的度。
  36. 有序树:若一棵树中所有子树从左到右的排序是有顺序的,不能颠倒次序。称该树为有序树。
  37. 无序树:若一棵树中所有子树的次序无关紧要,则称为无序树。
  38. 森林(树林):若干棵互不相交的树组成的集合为森林。一棵树可以看成是一个特殊的森林。
  39. 堂兄弟结点:在树中,双亲在同一层的那些结点,互成为堂兄弟结点。
  40. 根往下走过的路径直到尾结点K,前面所有结点都是K的祖先结点,K是前面所有结点的子孙结点,路径上最接近K的结点叫K的双亲结点,K是其孩子结点,有相同双亲结点的叫兄弟结点
  41. 树中一个结点的子结点(直接孩子结点)个数叫称为该结点的度,树中结点最大的度叫树的度
  42. 度大于0的叫分支结点,又叫非终端结点,度为0的叫叶子结点(终端结点)
  43. 结点的层次,深度是从根结点开始自顶向下逐渐累加;高度是从叶子结点自底向上累加;树的高度(深度)是树中结点最大的层数
  44. 路径和路径长度:路径长度是所经过边的个数
  45. 森林:是m>=0棵互不相交树的集合
  46. 二叉树:二叉树是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵不相交的左子树和右子树组成。(不存在度大于2的结点,左右顺序不能颠倒)
  47. 满二叉树:深度为k具有2k-1个结点的二叉树,称为满二叉树。所有层都含最多个结点;对于满二叉树,对于编号为i的结点,若有双亲,则其双亲为i/2 ,若有左孩子为2i ,右孩子为2i+1.
  48. 完全二叉树:如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1-- n的结点一一对应,则称这棵二叉树为完全二叉树。
  49. 二叉排序树:左子树上所有结点关键字小于根结点,右子树上所有关键字大于根结点,左子树和右子树又是一个二叉排序树
  50. 平衡二叉树:树上任意结点的左子树和右子树深度之差不超过1
  51. 平衡因子:将平衡二叉树上结点的左子树深度减去右子树深度的值称为平衡因子。
  52. 二叉树的遍历:是指按一定规律访问二叉树的每个结点,且每个结点只被访问一次的过程
  53. 线索二叉树:对一个二叉树中的所有结点的空指针域按照某种遍历次序加线索的过程叫作线索化,被线索化了的二叉树称作线索二叉树。
  54. 哈夫曼树:又称最优二叉树,是一类带权路径长度最短的树.设有n个权值{w1,w2,…,wp},在这些权值为各个叶子结点的权构成的二叉树中,带权路径长度wpl,最小的二叉树叫做哈夫曼树
  55. 哈夫曼编码:在哈夫曼树中,约定左分支代表0,右分支代表1,把叶子结点到根结点的路径上的左右分支代表的码从下至上一次连接起来,组成的字符串称为该叶子结点的哈夫曼编码,这就是哈夫曼编码
  56. :图G由两个集合V和E组成,记为G=(V,E),其中V是顶点的有穷非空集合,E是由V中顶点的序偶组成的有穷集,这些序偶称为边或弧
  57. 图的顶点的度:以该顶点为一个端点的边的数目
  58. 简单图:不存在重复边,不存在顶点到自身的边
  59. 无向完全图:无向图中任意两个顶点之间都存在边称为无向完全图(有一个n个顶点的无向完全图中每个顶点到其他(n-1)个顶点都连有一条边)
  60. 有向完全图:在有向图中,任意两个顶点之间都存在方向互为相反的两条弧。含有n个顶点的有向完全图有n*(n-1)条边。
  61. 子图:设有两个图G =(V,E)和G’=(V’,E’),若V(G’)是V(G)的子集,且E(G’)是E(G)的子集,则称G’是G的子图(Subgraph)。
  62. 连通:无向图中,顶点v到w有路径存在,则v和w是连通的
  63. 连通图:任意两个顶点间都存在路径则是连通图;
  64. 连通分量:无向图中极大连通子图称为连通分量
  65. 非连通图:若有n个顶点,并且小于n-1条边,则必为非连通图;
  66. 强连通图:在有向图中,任意两个顶点之间都有来回路径相通
  67. 非强连通图的每一个极大强连通子图叫做强连通分量
  68. 简单路径:若一条路径上各顶点均不重复,即路径经过每一顶点不超过一次,则此路径叫做简单路径。
  69. 环路:如果从一个顶点出发又回到该顶点,即Vp与Vq相同,则此路径叫做环路(Cycle)。
  70. 简单回路:序列中只有第一个顶点和最后一个顶点相同的路径。
  71. 生成树:连通图生成树是包含全部顶点的一个极小连通子图,顶点为n个,生成树有n-1条边(包含无向图G所有顶点的极小连通子图,成为生成树)
  72. 极小连通子图:该子图是G的连通子图,在该子图中删除任何一条边,子图都不在连通
  73. 有向树:一个顶点入度为0,其余入度全为1,则称此有向图为有向树
  74. 图的遍历:就是按照某种次序访问图中每个顶点一次且一次
  75. 广度优先搜索:首先由顶点v出发,访问v中各个未被访问的邻接结点,然后再依次访问邻接结点的未被访问过的邻接结点;是一种分层查找方式,每向前走一步,访问一批结点,不是递归;为了实现逐层访问,必须借助一个辅助队列(例题见下图);图的广度优先搜索与二叉树的层序遍历完全一致
  76. 深度优先遍历:类似于树的先序遍历,尽量进行深层遍历;从一个顶点出发,挨个访问其邻边未被访问过的顶点,一直访问到不能继续进行的时候退回到原来的顶点,退回路中挨个查找其邻边未被访问过的顶点,并访问之,一直退回到原点。
  77. 最小生成树:从图中选取若干条边,将所有顶点连接起来,并且所选取的这些边的权值之和最小。
  78. 普里姆(Prim)算法:算法从一个顶点开始,在此顶点对应的结点中寻找最小权值的结点连接,如此往复,直至满了为止,此时树必有n-1条边
  79. 最短路径:对于带权图,路径上权值之和最小的叫简单路径
  80. 拓扑排序:就是将AOV网络中的各个顶点(各个活动)排列成一个线性有序序列,使得所有要求的前趋、后继关系都能得到满足
  81. AOV网:用顶点表示事件,用弧表示活动,弧的权值表示活动所需的时间,构造的有向网称为AOE网
  82. 有向无环图:有向图中不存在环,称为DAG图
  83. 源点:存在唯一的入度为0的顶点,叫源点
  84. 汇点:存在唯一的,出度为0的顶点叫汇点
  85. 关键路径:从源点到汇点的最长路径的长度,即为完成整个工程任务所需的时间,该路径称为关键路径。
  86. 关键活动:关键路径上的活动叫做关键活动
  87. 查找:指定某个值,在查找表中确定是否存在一个记录,该记录的关键字等于给定值。
  88. 平均查找长度ASL—查找方法时效的度量:为确定记录在查找表中的位置,需和给定值进行比较的关键字个数的期望值
  89. 顺序查找:主要用于线性表中查找,分为无序线性表和有序线性表查找
  90. 冲突:两个不同的关键字,其散列函数值相同,因而被映射到同一表位置的现象称为冲突
  91. 折半查找:又叫二分查找,仅适用于按关键字排列有序的顺序表
  92. 索引顺序表查找:将查找表分为若干个子表,块内可以无序,块间有序,即第一个块关键字小于第二个块中所有记录的关键字,依次类推,再建立一个索引表,索引表中每个元素含有各块最大关键字和各块的第一个元素的地址,索引表按关键字有序排列
  93. 二叉排序树:简称BST,也称二叉查找树;左子树值全部小于根结点值,右子树值全部大于根结点值,左右子树本身也是二叉排序树,所以二叉排序树中序遍历可以得到一个递增序列
  94. 关键字:记录(数据元素)中的某个数据项的值。
  95. 主关键字:该关键字可以唯一地标识一个记录。
  96. 次关键字:该关键字不能唯一标识一个记录。
  97. 静态查找表:对查找表的查找仅是以查询为目的,不改动查找表中的数据。【无需动态修改查找表(顺序查找、折半查找、散列查找);】
  98. 动态查找表:在查找的过程中同时插入不存在的记录,或删除某个已存在的记录。【需要动态修改和删除的查找表(二叉排序树查找、散列查找)】
  99. 排序:将数据表调整为按关键字从小到大或从大到小的次序排列的过程
  100. 直接插入排序:是最简单的排序方法,它的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录增1的有序表。
  101. 稳定排序:在排序过程中,如果关键字相同的两个元素的相对次序不变,则称为稳定的排序
  102. 折半插入排序:也叫二分插入排序,先折半查找出元素的待插入位置,然后再统一移动待插入位置之后的所有元素
  103. 希尔排序:先将待排序表分为若干个相同长度的子表(最后一个可不计),分别进行直接插入排序,当基本有序时,再对整体做一次直接插入排序
  104. 交换排序:根据序列中两元素关键字比较结果对换两元素
  105. 冒泡排序:从后往前两两比较相邻元素值,若为逆序则交换它们,结果将最小的元素排到第一个位置,每趟排序将需要排序的最小(或最大)的元素放到序列的最终位置
  106. 快速排序:通常取第一个pivot元素作为基准,通过一趟排序将其分为两部分L[1…k-1]与L[k+1…n]其中L[1…k-1]中元素都小于等于pivot,而L[k+1…n]中元素都大于等于pivot,则pivot放在其最终位置k上,而后分别递归对两个子表重复上述过程,直至每部分只有一个元素或为空;具体实现为:将表从后往前扫与基准元素对比,比其小的第一个元素相互对换,而后从前往后扫,比其大的第一个元素与其相互对换,依次重复直到完全定位
  107. 选择排序:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。我们主要介绍简单选择排序和堆排序
  108. 简单选择排序:第i趟从L[i…n]中选取最小元素与L(i)对换,每一趟排序可以确定一个元素的最终位置
  109. :它是一种树形组织,使我们能迅速确定包含最大值(或最小值)的结点。
  110. 堆排序:把待排序的记录的关键字存放在数组A[1…n]之中,将A看成是一棵完全二叉树的顺序表示,每个结点表示一个记录,第一个记录A[1]作为二叉树的根,以下各记录A[2…n]依次逐层从左到右顺序排列,任意结点A[i]的左孩子是A[2i],右孩子是A[2i+1],双亲是A[ i/2 ]。
  111. 归并排序:将表看做n个有序的子表,每个子表长度为1,然后两两合并,称为2-路归并排序
  112. 基数排序:基于关键字各位大小进行排序,并非基于比较。

你可能感兴趣的:(数据结构,笔记,数据结构,算法,链表)