导航菜单
首页 >  数据字典名词解释自考  > 数据结构必背名词解释&&简答题汇总

数据结构必背名词解释&&简答题汇总

数据结构必背名词解释&&简答题汇总数据结构必背名词解释&&简答题汇总数据结构必背名词解释&&简答题汇总数据结构-名词合集第一章:绪论

1.数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合。

2.数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

3.数据项:数据项是数据结构中讨论的最小单位。是数据记录中基本的,不可分的数据单位。

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

5.数据结构:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数据结构包括3个方面的内容:逻辑结构、存储结构和对数据的运算。

6.数据的逻辑结构:数据的逻辑结构是对数据之间关系的描述,它与数据的存储结构无关,同一种逻辑结构可以有多种存储结构。归纳起来数据的逻辑结构主要有四大类:集合、线性结构、树形结构、图状结构或网状结构。

7.数据的存储结构:数据的物理结构又称为存储结构,是数据的逻辑结构在计算机中的表示(又称映像)。它包括数据元素的表示和关系的表示。当数据元素是由若干数据项构成的时候,数据项的表示称为数据域;比如一个链表节点,节点包含值域和指针域,这里节点可以看做一个数据元素,其中的值域和指针域都是这个数据元素的数据域。主要有顺序存储、链式存储、索引存储、散列存储。

8.数据的运算:施加在数据上的运算包括运算的定义和实现。定义是针对逻辑结构,指出运算的功能。实现是针对存储结构的,指出运算的具体操作步骤。

9.算法:对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。有5个重要特性(有穷性、确定性、可行性、输入、输出)。

(1)有穷性:一个算法必须保证执行有限步之后结束。

(2)确定性:算法的每一步骤必须有确定的定义。

(3)输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身确定了初始条件。

(4)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。

(5)可行性:算法中的所有操作都必须可以通过已经实现的基本操作进行运算,并在有限次内实现,而且人们用笔和纸做有限次运算后也可完成。

10.算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求。

(1)正确性:要求算法能够正确地执行预先规定的功能和性能要求。这是重要也是基本的标准。

(2)可读性:要求算法易于人的理解。

(3)健壮性:要求算法有很好的容错性,能够对不合理的数据进行检查。

(4)高效率与低存储量需求:算法的效率主要是指算法的执行时间。对于同一个问题如果有多种算法可以求解,执行时间短的算法效率高。算法的存储量指的是算法执行过程中所需要的大存储空间。高效率和低存储量这两者都与问题的规模有关。

11.时间复杂度:算法的时间复杂度,也就是算法的时间量度,记作:T(n)=0(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。

12.空间复杂度:算法的空间复杂度指算法在运行时所需存储空间的度量,主要考虑在算法运行过程中临时占用的存储空间的大小(和时间复杂度一样,以数量级的形式给出)。

13.就地算法:就地( In-place)算法指的是直接修改输入数据而不是将输入数据复制一份处理之后再覆盖回去,这个名称和时间复杂度没什么关系,纯粹是指算法处理数据的方式。比如一个冒泡排序就是就地算法。

第二章:线性表

1.线性表的逻辑特性:线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的,每个元素最多只能有一个前驱和一个后继。

2.线性表的存储结构:线性表的存储结构有顺序存储结构和链式存储结构两种,前者称为顺序表,后者称为链表,其中顺序表是保存在一片连续的存储空间中的,而链表则是通过指针来与其他数据进行联系,每个数据元素除了存储元素本身信息,还要存储与其他数据之间的关系。

3.单链表:包含数据域和指针域,指针域有一个指针,指针指向下一节点的地址。

4.双链表:包含数据域和指针域,指针域有两个指针,一个指针指向下一节点的地址,另一个指针指向上一节点的地址。

5.循环单链表:在单链表基础上,最后一个节点的后继指向第一个节点

6.循环双链表:在双链表基础上,最后一个节点的后继指向第一个节点,第一个节点的前驱指向最后一个节点。

7.静态链表:借助数组来描述线性表的链式存储结构,节点也有数据域和指针域。但指针是节点的相对地址(数组下标),需要预先分配连续的内存空间。

第三章:栈与队列

1.栈:栈是一个特殊的线性表,它在操作上有一些特殊的要求和限制:栈的元素必须“后进先出”,栈的操作只能在这个线性表的表尾进行。

2.队列:队列是一个特殊的线性表,它在操作上有一些特殊的要求和限制:队列的元素必须“先进先出”,队列的入队操作只能在这个线性表的一端进行,出队操作只能在这个线性表的另一端进行。进行删除操作的一端称为队头,进行插入操作的一端称为队尾。

3.假溢出:系统作为队列用的存储区还没有满,但队列却发生了溢出,我们把这种现象称为"假溢出”。

解决办法:

一是将队列元素向前“平移”(占用0至rear-front-1);

二是将队列看成 首尾相连,即循环队列(0..m-1)。

另一种解法是“设标记”方法,如设标记tag, tag等于0情况下,若删除时导致front=rear 为队空;tag=1情况下,若因插入导致front=rear则为队满。

4.循环队列:为了克服顺序队列中假溢出,通常将一维数组Queue[0]到Queue [MAXSIZE-1]看成是一个首尾相连接的圆环,即Queue[0]与Queue[MAXSIZE-1]相连接在一起,将这样形式的队列成为循环队列。

5.递归函数:对于某一函数f(x),其定义域是集合A,若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。

第四章:串

1.串;由零个或者多个字符组成的有限序列。串中任意个连续的字符组成的子序列称为该串的子串。字符在序列中的序号为该字符的位置。

2.串的存储方式:可大致分为三种,定长顺序存储方式、动态分配的堆分配存储方式以及链式存储方式。

所谓堆,即为一块内存。当程序运行时,系统自动为程序分配一块内存,这块内存是空的。每当使用malloc或new函数的时候,新

相关推荐: