数据结构问题答疑材料

合集下载

数据结构问题回复

数据结构问题回复

1。

p15 要清除一个已经存在的线性表的内容,只需要把该线性表置为空表,即把表长置为0。

为什么?表长只是记录数组的长度而已呀,怎么把数组元素删除?确实如此,因为这个线性表是一个顺序表,是存放在数组里面,并且数组中是否有元素由length来决定;所以我们在判断这个表是否为空表的唯一判定依据,就是length。

从另一个角度来讲,数组中的元素你是没办法删除,只能覆盖,你删除成什么数据才认为是删除了呢?清成0吗?当然不是,因为0也可能是顺序表中的一个元素。

2。

p76 二、3. 判定一个栈ST(最多元素为m0)为空的条件是()A、ST->top<>0B、ST->top=0C、ST->top<>m0D、ST->top=m0答案是B,但是我认为ST->top=-1才表示为空,ST->top=0已经有一个元素了,为什么?答案有问题,答案B应该改为ST->top= -1;3。

p76 二、9. 假定利用数组a[N]循环顺序存储一个队列,用f 和r 分别表示队首和队尾指针,并已知队未空,当进行出对并返回队首元素时所执行的操作为()A、return(a[++r%N])B、return(a[--r%N])C、return(a[++f%N])D、return(a[f--%N])答案为D。

你写的D项和课本教材上的D项都有问题。

D项应该为答案书上所写:D、return(a[f++%N])这个过程实际可以分解为两步:1,f 表示队首元素,a[f++%N] 表示先把队首元素的值取出来也就是a[f];2,然后(f++)%N 是把f往后移一位。

这里面要注意f++ 和++f 的区别。

4。

p96 二、3. 若串S=“software”,其子串数目是()A、8B、37C、36D、9答案是C,书上的错,是B,因为要包括空串5。

p142 一、4. 根据树的计数问题的原理,具有三个结点的二叉树有 5 种不同的形态。

数据结构习题参考解答

数据结构习题参考解答

数据结构习题参考解答第1次题1:简述你对数据结构的理解。

答:如何描述一组数据,并给出其运算,大致可以从如下四个方面来理解:数据集合:一般有多个数据,且各个数据的类型相同;逻辑关系:数据与数据之间有一定的逻辑关系(如线性关系,树形关系);存储表示:以什么方式在计算机上存放数据,并且能反映数据与数据之间的逻辑关系; 运算:在存储结构上,按数据之间的逻辑关系对数据进行操作(建立数据结构,删除、插入、查找元素等);题2:算法的复杂性是评价算法好坏的重要指标,它是以问题的规模为基础的,你怎么理解问题的规模。

假如要从n 个整数中找最小数,请用C给出函数,并分析复杂性.答:问题规模有很多衡量准则,通常以数据集合的大小(即数据元素的个数)来表示。

例如:要从n 个整数中找最小数,问题的规模由 n 表示。

用C给出函数表示,则为:int FindMinElem(int data[], int n){int k;int Min=10000 // 给一个适当大的初始值即可;操作1for(k=0;k<n;++k) // 操作2{if(data[k]<Min) //操作3Min=data[k] //操作4}return(Min); //操作5}复杂性分析:(1) 操作1,置初始值,设时间为C1,共一次;(2) 操作2,每次运算(什么运算:k 增1和大小比较)时间设为 C2,共(n+1)(为什么?)(3) 操作3,每次运算(比较运算)时间设为C3,共比较 n 次;(4) 操作4,每次运算时间设为 C4,最少1次,最多 n 次,实际假设为 1≤ m ≤ n(5) 操作5,返回操作,设时间为 C5,共一次;于是,总时间为:T(n) = C1 + (n+1)C2 + n C3 + m C4 + C5设 C = Max(C1,C2,C3,C4,C5),于是:T(n) ≤ C + (n+1)C + n C + m C + C = C (1+ n+1 +n + m + 1) ≤ 4Cn ∼O(n) (n ≥1)题3:给出问题求解的基本步骤。

数据结构总复习+习题+解答

数据结构总复习+习题+解答

题 2.3 长度为 n 的非空线性表采用顺序存储结构,在表的第 i 个位置删除一个数据元素,i
的合法值应该是( D )
A) i>0
B)1≤i≤n+1
C)1≤i≤n-1 D)1≤i≤n
题 2.4 若线性表最常用的操作是存取第 i 个元素及其前趋的值,则采用( D )存储方式节
省时间。
A.单链表
B.双链表
题 1.1 如何理解抽象数据类型。 答:定义了一个数据对象,数据对象中各元素之间的关系以及一组处理数据的操作。
题 1.2 数据元素间的逻辑结构关系有哪些。 答:四种。分别是集合结构、线性结构、树状结构、图状结构。
题 1.3 通常从时间复杂度和空间复杂度来评价算法的优劣。
题 1.4 下面算法的时间复杂度为(C) int i,j; for(i=0;i<m;i++)
2.4 综合应用 根据给定需求,在顺序存储或链式存储上实现相应操作。 重点是链表。
题 2.1 一维数组和顺序表的异同。 同:一维数组与顺序表都可按元素下标直接(或随机)存取元素; 异:
2 / 16
数据结构复习资料
①一维数组中各元素间可以有空元素,而顺序表中的元素必须按顺序存放; ②一维数组的基本操作只有按下标存取,而顺序表可以有线性表的所有操作,如插入、删除等; ③一维数组的大小一经分配便不可变,而顺序表的长度是可变的。
C.单循环链表
D.顺序表
题 2.5 某线性表最常用的操作是在最后一个结点之后插入一个结点或删除第一个结点,故采
用( D )存储方式最节省运算时间。
A.单链表
B.仅有头结点的单循环链表
C.双链表
D.仅有尾指针的单循环链表
题 2.6 链表不具有的特点是( B ) A.插入、删除不需要的移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比

数据结构简答题

数据结构简答题

数据结构简答题数据结构是计算机科学中非常重要的一个概念,它是指数据对象以及数据对象之间的关系、操作和约束的逻辑结构。

数据结构的设计和选择对于解决问题的效率和性能至关重要。

在本文中,我将回答一些关于数据结构的简答题。

1. 什么是数据结构?数据结构是计算机科学中用来组织和存储数据的一种方式。

它定义了数据对象之间的关系、操作和约束的逻辑结构。

常见的数据结构包括数组、链表、栈、队列、树和图等。

2. 数据结构有哪些基本操作?数据结构的基本操作包括插入、删除、查找和修改。

插入操作将新的数据元素插入到数据结构中的指定位置;删除操作将指定位置的数据元素从数据结构中移除;查找操作根据给定的条件在数据结构中查找指定的数据元素;修改操作用于更新数据结构中的数据元素的值。

3. 数组和链表的区别是什么?数组和链表都是常见的数据结构,它们的主要区别在于数据的存储方式。

数组是一种连续存储数据元素的数据结构,它的元素在内存中是连续存储的,可以通过索引来访问元素。

链表是一种非连续存储数据元素的数据结构,它的元素在内存中是通过指针连接起来的,每一个元素包含一个指向下一个元素的指针。

4. 栈和队列有什么特点?栈和队列都是常见的数据结构,它们的主要特点如下:- 栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。

插入操作称为入栈,删除操作称为出栈。

- 队列是一种先进先出(FIFO)的数据结构,允许在队尾进行插入操作,在队头进行删除操作。

插入操作称为入队,删除操作称为出队。

5. 什么是树和图?树和图都是非线性的数据结构,它们的主要区别在于结点之间的关系。

树是一种由结点和边组成的层次结构,每一个结点可以有零个或者多个子结点。

树的一个特殊情况是二叉树,每一个结点最多有两个子结点。

图是一种由结点和边组成的网络结构,结点之间的关系可以是任意的。

6. 数据结构的选择有什么原则?在选择数据结构时,需要考虑问题的需求和特点。

以下是一些选择数据结构的原则:- 空间效率:根据数据量的大小选择合适的数据结构,以节省内存空间。

数据结构第1章习题解答

数据结构第1章习题解答

第1章习题解答1.1什么是数据结构?一个数据结构结构的二元组定义形式是什么样的?举例解释其含义。

[解答]概括地说,数据结构是互相有关联的数据元素的集合。

也就是说,数据结构是由某个数据元素的集合和该集合中的数据元素之间的关系组成的,因此数据结构可以用一个二元组来表示。

例如,B=(D,R),其中D是某一数据元素的集合,R是D上的关系的有限集。

R所表示的是集合D的数据元素之间的逻辑关系,它表示的可能是数据元素之间客观存在的某种联系,也可能是为了处理问题的需要而人为组织的数据元素之间的某种关系,因此,称之为数据的逻辑结构。

例如,一个农历节气表,就构成了一个数据结构,其数据元素是一年的农历二十四节气,数据元素之间的关系是节气的时间先后关系。

又如,一个某年级学生的成绩排序表,也是一个数据结构,其数据元素是包含成绩项的该年级的学生记录,数据元素之间的关系是学生之间的成绩高低关系。

为了在计算机中进行数据处理,必须把从实际问题中抽象出来的数据的逻辑结构映象到计算机的存储器中,即要把抽象出来的数据元素集合D 和数据元素之间的关系存储到计算机的存储器中,称之为数据的物理结构或存储结构,它是数据的逻辑结构在计算机中的表示。

1.2假设R是集合M上的一个关系,R的定义是什么?对实际问题而言,其含义是什么?[解答]如果R是对集合M自身的笛卡尔积所取的一个子集,那么我们就说“R是集合M上的一个关系”。

对实际问题而言,它表示的是集合M中元素的某种相关性。

例如,对于参加一个羽毛球比赛的运动员集合,可以用一个二元关系表示出各场比赛的胜负关系。

对于一组课程的集合,可以用一个二元关系表示出各门课程之间的先修和后续关系等等。

1.3设有集合M={d1,d2,d3,d4,d5}上的一个关R={(d1,d2),(d2,d4),(d4,d5),(d2,d5),(d1,d4),(d1,d5),(d3,d5),(d1,d3)},试说明关系R具有什么样的性质。

数据结构简答题

数据结构简答题

数据结构简答题一、什么是数据结构?数据结构是计算机中组织和存储数据的方式,它涉及到数据元素之间的关系、数据元素的逻辑结构以及数据元素的物理存储结构。

数据结构可以帮助我们有效地组织和管理数据,使得数据的操作和处理更加高效和方便。

二、数据结构的分类有哪些?数据结构可以分为以下几类:1. 线性结构:线性结构中的数据元素之间存在一对一的关系,比如线性表、栈、队列等。

2. 非线性结构:非线性结构中的数据元素之间存在一对多或多对多的关系,比如树、图等。

3. 数组结构:数组结构是一种线性结构,它将相同类型的数据元素按一定的顺序排列在连续的存储空间中。

4. 链表结构:链表结构也是一种线性结构,它通过指针将数据元素链接在一起,可以分为单链表、双链表等。

5. 树结构:树结构是一种非线性结构,它由节点和边组成,每个节点可以有多个子节点。

6. 图结构:图结构也是一种非线性结构,它由节点和边组成,节点之间可以有多种关系。

三、什么是算法?算法是解决问题的一系列步骤或指令,它描述了如何通过有限的步骤来解决特定的问题。

算法是一种精确而又有序的计算过程,它可以用来处理数据、进行计算和执行特定的操作。

四、算法的特性有哪些?算法具有以下几个特性:1. 有穷性:算法必须在有限的步骤内结束,不能无限循环。

2. 确定性:算法的每个步骤必须明确而且无歧义,不会产生二义性。

3. 可行性:算法的每个步骤都必须可行,能够通过已知的基本操作实现。

4. 输入:算法必须有输入数据,可以是零个或多个。

5. 输出:算法必须有输出结果,可以是零个或多个。

6. 有零个或多个参数:算法可以接受零个或多个参数,用于控制算法的行为。

五、请简要描述栈和队列的特点和应用场景。

1. 栈(Stack):栈是一种先进后出(Last In First Out,LIFO)的数据结构。

栈的特点是只能在栈顶进行插入和删除操作,即最后插入的元素最先删除。

栈的应用场景包括函数调用、表达式求值、括号匹配等。

807数据结构 -回复

807数据结构-回复数据结构是计算机科学中非常重要的一个概念,它是指用于存储、组织和管理数据的方式和方法。

在计算机科学中,数据结构可分为线性结构和非线性结构两种类型。

线性结构包括数组、链表、栈和队列,而非线性结构包括树和图。

在本文中,我将一步一步回答有关数据结构的问题,并解释其在计算机科学中的重要性。

1. 什么是数据结构?数据结构是指组织和存储数据的方式和方法,用于有效地访问和操作数据。

它涉及选择适当的数据结构和算法,以实现特定的功能和性能要求。

数据结构有助于提高代码的可读性、可维护性和可扩展性。

2. 为什么数据结构很重要?数据结构是计算机科学的基础,它为程序员提供了解决问题的工具和方法。

通过选择合适的数据结构,程序员可以提高代码的效率和性能,并降低算法的复杂度。

数据结构还可以帮助程序员更好地组织和管理数据,从而简化开发过程并提高代码的可读性和可维护性。

3. 数据结构有哪些常见类型?常见的数据结构类型包括线性结构和非线性结构。

线性结构包括数组、链表、栈和队列,它们以线性的方式存储和访问数据。

非线性结构包括树和图,它们以分支的方式存储和访问数据。

每种数据结构都有不同的特点和适用场景,程序员需要根据问题的需求选择合适的数据结构。

4. 数组是什么,有什么特点?数组是一种线性结构,它以连续的方式存储相同类型的元素。

数组的特点是可以通过索引快速访问任意位置的元素,而且在内存中的分配是连续的。

但是数组的大小是固定的,不能动态扩展,而且在插入和删除元素时需要移动其他元素,影响效率。

5. 链表是什么,有什么特点?链表是一种线性结构,它以节点的方式存储元素,并通过指针连接各个节点。

链表的特点是可以动态添加和删除元素,不需要移动其他元素。

但是链表的节点需要额外的指针空间,访问元素需要遍历整个链表,效率较低。

6. 栈是什么,有什么特点?栈是一种线性结构,它以先进后出(LIFO)的方式存储和访问元素。

栈的特点是只能在栈顶进行插入和删除操作,插入和删除元素的时间复杂度都是O(1)。

数据结构总复习+习题+解答

双亲表示法孩子链表示法孩子兄弟表示法2树和二叉树之间的转换树的先根遍历二叉树的先序遍历树的后根遍历二叉树的中序遍历3树和森林之间的转换森林的先序中序和后序遍历与二叉树的先序中序和后序遍历一一对应63huffman1huffman树的构造过程2前缀码概念3计算带权路径长度
数据结构复习资料
数据结构总复习+习题解答
第一章 绪论
1.1 理解基本概念 1、数据是信息的载体,是描述客观事物的数、字符以及能输入到计算机中,被计算机识别 和处理的符号的集合。 2、数据元素是数据的基本单位,可由若干数据项组成。 3、数据对象是性质相同的数据元素的集合。 4、数据结构指某一数据元素集合中所有数据成员之间的关系,定义为: 数据结构={D,R} 5、数据结构三要素:逻辑结构,物理结构,作用于数据结构的运算。 6、逻辑结构:数据元素间的逻辑关系,分为线性结构和非线性结构(集合、树和图结构) 。 7、物理结构:数据元素及其关系在计算机上的映像,通常按顺序存储或链式存储。 8、抽象数据类型定义了一个数据对象,数据对象中各元素之间的关系以及一组处理数据的 操作。特征:数据抽象和信息隐藏。 9、数据类型和数据结构的异同: 同:它们都具有抽象性,并不特指适用于何处,可根据问题需要用他们来表示数据元 素间的关系。 异:数据结构本身是一种数据的组织和使用形式,通过把数据定义成数据类型才能在 计算机上使用。 1.2 算法特性与性能分析 1、算法的定义:解决特定问题的一系列操作。 2、算法的 5 大特性(要素) :输入、输出、确定性、可行性和有限性。 3、算法时间复杂度分析:寻找关键操作(基本操作,通常为循环的最内层程序段) ,计算关 键操作的执行次数,一般结果为问题规模 n 的多项式。时间复杂度为该多项式的最高次幂。 T(n)=O(1)的含义:常量时间复杂度,表示算法执行时间与问题规模无关。 4、算法空间复杂度分析:算法执行时所需要的辅助空间。 S(n)=O(1)的含义: 常量空间复杂度,表示算法执行时需要的辅助空间与问题规模无关,也 称为算法原地工作。 题 1.1 如何理解抽象数据类型。 答:定义了一个数据对象,数据对象中各元素之间的关系以及一组处理数据的操作。 题 1.2 数据元素间的逻辑结构关系有哪些。 答:四种。分别是集合结构、线性结构、树状结构、图状结构。 题 1.3 通常从时间复杂度和空间复杂度来评价算法的优劣。 题 1.4 下面算法的时间复杂度为(C) int i,j; for(i=0;i<m;i++) for(j=0;j<n;j++) a[i][j]=i*j;

数据结构简答题

数据结构简答题1. 什么是数据结构?数据结构是计算机科学中研究数据组织、存储和管理的一门学科。

它关注如何以及如何组织数据以便有效地使用和操作。

数据结构可以分为线性结构(如数组、链表)、树形结构(如二叉树、堆)、图形结构(如有向图、无向图)等。

2. 请解释什么是栈和队列,并举例说明它们的应用场景。

栈是一种具有特定操作约束的线性数据结构,它遵循先进后出(LIFO)的原则。

栈有两个主要操作:入栈(push)和出栈(pop)。

入栈将元素放入栈顶,出栈将栈顶元素移除。

栈的应用场景包括表达式求值、函数调用和浏览器的前进后退功能等。

队列是一种具有特定操作约束的线性数据结构,它遵循先进先出(FIFO)的原则。

队列有两个主要操作:入队(enqueue)和出队(dequeue)。

入队将元素放入队尾,出队将队头元素移除。

队列的应用场景包括任务调度、消息传递和打印队列等。

举例说明:假设有一个栈,我们可以使用栈来实现浏览器的前进后退功能。

每当用户访问一个新的网页时,我们将该网页入栈。

当用户点击后退按钮时,我们将栈顶的网页出栈,用户将返回上一个访问的网页。

类似地,我们可以使用队列来实现任务调度。

每当有新的任务到达时,我们将其入队。

然后,按照队列的顺序处理任务,确保每一个任务都得到适当的执行。

3. 请解释什么是链表,并举例说明它的应用场景。

链表是一种常见的数据结构,用于存储和组织数据。

它由一系列节点组成,每一个节点包含数据和指向下一个节点的指针。

链表可以分为单向链表和双向链表两种类型。

单向链表中,每一个节点惟独一个指针指向下一个节点。

双向链表中,每一个节点有两个指针,一个指向前一个节点,一个指向后一个节点。

链表的优点是可以动态地添加或者删除节点,不需要预先分配内存空间。

然而,链表的缺点是访问节点的时间复杂度为O(n),而不是数组的O(1)。

链表的应用场景包括实现栈和队列、实现哈希表中的拉链法解决冲突、实现LRU缓存淘汰算法等。

数据结构习题解答


几种方法:一是另设一布尔变量来区别队列的空和满。二是少用一个元素的空间, 每次入队前测试入队后头尾指针是否会重合,如果会重合就认为队列已满。三是设 置一计数器记录队列中元素总数,不仅可判别空或满,还可以得到队列中元素的个 数。 3. 设有一个静态顺序队列,向量大小为 MAX,判断队列为空的条件是什么?队列满 的条件是什么? 队列为空:front=rear。 队满:rear=MAX-1 或 front=rear(队首指针 front,一个队尾指针 rear) 4. 设有一个静态循环队列,向量大小为 MAX,判断队列为空的条件是什么?队列满 的条件是什么? 循环队列为空:front=rear。 循环队列满:(rear+1)%MAX=front。(队首指针 front,一个队尾指针 rear) 5. 利用栈的基本操作,写一个返回栈 S 中结点个数的算法 intStackSize(SeqStacck S),并说明 S 为何不作为指针参数的算法? intStackSize(SeqStack S) {//计算栈中结点个数 int n=0; if(!EmptyStack(&S)) { Pop(&S); n++; } return n; } 上述算法的目的只要得到 S 栈的结点个数就可以了。并不能改变栈的结构。所以 S 不用指针做参数,以避免对原来的栈中元素进行任何改变。系统会把原来的栈按值 传递给形参,函数只对形参进行操作,最后返回元素个数。 6. 一个双向栈 S 是在同一个向量空间内实现的两个栈,它们的栈底分别设在向量空 间的两端。视为此双向栈设计初始化 InitStack(S) ,入栈 Push(S,i,x) ,出 栈 Pop(S,i,x)算法,其中 i 为 0 或者 1,用以表示栈号。 双向栈其实和单向栈原理相同,只是在一个向量空间内,好比是两个头对头的 栈放在一起,中间的空间可以充分利用。双向栈的算法设计如下: //双向栈的栈结构类型与以前定义略有不同 #define StackSize 100 // 假定分配了 100 个元素的向量空间 #define char Datatype typedef struct { DatatypeData[StackSize] int top0; //需设两个指针 int top1; }DblStack void InitStack( DoubleStack *S ){ //初始化双向栈 S->top0 = -1; S->top1 = StackSize; //这里的 top2 也指出了向量空间,但由于是作为栈底,因此不会出 错 } intEmptyStack( DblStack *S, int i ){ //判栈空(栈号 i)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构问题答疑材料1. 在一个单链表中,已知p所指结点,若在p之后插入s结点,则执行?答案:s->next=p->next; p->next=s2. 数据的逻辑结构中非线性结构有A、集合B、线形结构C、树形结构D、网状结构E、链式结构答案:C树形结构,D网状结构3. 线性结构中元素之间存在____关系,树形结构中元素之间存在_____关系,图形结构中元素之间存在________关系A、一对一,多对多,一对多B、一对多,一对一,多对多C、一对一,一对多,多对多D、多对多,一对多,一对一E、以上都不正确答案:C、一对一,一对多,多对多4.广义表((a),a)的表尾是______ ()A、aB、bC、(a)D、((a))答案: C、(a)5.算法有哪些重要特性?答案:1.有穷性 2.确定性 3.可行性 4.有输入 5.有输出6.数据结构是一门研究什么内容的学科?答案:数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。

7.设有一个空栈,现在有输入序列1、2、3、4、5,经过push,push,pop,push,pop,push,push,pop,pop,pop后,输出序列是_________. 选项:a、1、2、3、4、5b、2、3、5、4、1c、5、4、3、2、1d、1、3、4、2、5答案:b、2、3、5、4、1解析:1,2进栈,最先出栈的肯定是2。

8.两个串相等的条件是A、长度相等B、对应位置的字符相等C、存储位置相同D、存储结构相同E、以上都是答案:AB9.顺序查找适用于存储结构为______的线性表A、散列B、顺序或者链式C、压缩D、索引答案:B10.设哈希表长m=16,哈希函数H(key)=key%13;表中已有3个结点H(19)=6 H(27)=1 H(23)=10 其余地址为空,如用线性探测再散列处理冲突,关键字14的地址是选项:a、1b、2c、3d、0e、以上都不正确答案:b解析:14%13=1,因为1地址中已经有元素,所以需要再哈希求地址:(14+1)%13=211.最常用的哈希函数构造方法为A、除留余数法B、直接定址法C、折叠法D、数字分析法答案:A12.一个链式队列中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是______A、r->next=sB、r=sC、s=rD、s=r->nextE、s->next=r答案:AB13.广义表L=( a, (x,y), ((x)) )的长度是________,深度是________A、 3 3B、23C、32D、43E、34答案:A、 3 3解析:广义表LS中的直接元素的个数称为LS的长度;广义表LS中括号的最大嵌套层数称为LS的深度。

14.在一个单链表中,已知p所指结点,若在p之后插入s结点,则执行__________.A、s->next=p->nextB、p->next=sC、p->next = s->nextD、p->next=sE、p->next = p->next->next答案:AB15.顺序栈S为空的判定条件选项:a、S.top==S.baseb、S==S.basec、S.top==Sd、没有正确答案答案:a16.一个队列的入队序列是1、3、4、2,则队列的首次输出元素是_______。

()A、3B、2C、1D、4答案:C17.计算机算法指的是(1),它必须具备(2)这三个特性。

(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性答案:C. B.18.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构答案:C.19.数据结构是一门研究什么内容的学科?答案:.数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。

20.数据的存储结构由哪四种基本的存储方法实现?答案:四种表示方法(1)顺序存储方式。

数据元素顺序存放,每个存储结点只含一个元素。

存储位置反映数据元素间的逻辑关系。

存储密度大,但有些操作(如插入、删除)效率较差。

(2)链式存储方式。

每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。

指针反映数据元素间的逻辑关系。

这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。

(3)索引存储方式。

除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。

(4)散列存储方式。

通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。

其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。

21.线性表是具有n个()的有限序列(n>0)。

A.表元素 B.字符 C.数据元素 D.数据项 E.信息项答案:C22.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。

A. O(0)B. O(1)C. O(n)D. O(n2)答案:C23.线性表有两种存储结构:一是顺序表,二是链表。

试问:(1)如果有 n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。

在此情况下,应选用哪种存储结构?为什么?(2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?答案:.(1)选链式存储结构。

它可动态申请内存空间,不受表长度(即表中元素个数)的影响,插入、删除时间复杂度为O(1)。

(2)选顺序存储结构。

顺序表可以随机存取,时间复杂度为O(1)。

24.若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?为什么?答案:采用链式存储结构,它根据实际需要申请内存空间,而当不需要时又可将不用结点空间返还给系统。

在链式存储结构中插入和删除操作不需要移动元素。

25.线性结构包括______、______、_______和_______。

线性表的存储结构分成______和______。

答案:线性表栈队列串顺序存储结构和链式存储结构26.对于栈操作数据的原则是()。

A. 先进先出B. 后进先出C. 后进后出D. 不分顺序答案:B.27.一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i (1<=i<=n)个元素是()。

A. 不确定B. n-i+1C. iD. n-i答案:B28.有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?()A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 6答案:C.29.栈和队列的共同点是()。

A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点答案:C30.判断:栈与队列是一种特殊操作的线性表。

()答案:√31.判断:栈和队列都是线性表,只是在插入和删除时受到了一些限制。

()答案:√32.名词解释:栈。

答案:栈是只准在一端进行插入和删除操作的线性表,允许插入和删除的一端叫栈顶,另一端叫栈底。

最后插入的元素最先删除,故栈也称后进先出(L IF O)表。

33.名词解释:队列答案:队列是允许在一端插入而在另一端删除的线性表,允许插入的一端叫队尾,允许删除的一端叫队头。

最先插入队的元素最先离开(删除),故队列也常称先进先出(F IF O)表。

34.若元素的进栈序列为:A、B、C、D、E,运用栈操作,能否得到出栈序列B、C、A、E、D和D、B、A、C、E?为什么?答案:能得到出栈序列B、C、A、E、D,不能得到出栈序列D、B、A、C、E。

其理由为:若出栈序列以D开头,说明在D之前的入栈元素是A、B和C,三个元素中C是栈顶元素,B和A不可能早于C出栈,故不可能得到D、B、A、C、E出栈序列。

35.下面关于串的的叙述中,哪一个是不正确的?()A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储答案:B36.已知串S=‘aaab’,其Next数组值为()。

A.0123 B.1123 C.1231 D.1211答案:A37.串的长度是指()A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数答案:B38.空格串是指__(1)__,其长度等于___(2)__。

答案:(1) 由空格字符(ASCII值32)所组成的字符串 (2)空格个数39.串是一种特殊的线性表,其特殊性表现在__(1)__;串的两种最基本的存储方式是__(2)__、__(3)__;两个串相等的充分必要条件是__(4)__。

答案:(1)其数据元素都是字符(2)顺序存储(3)和链式存储(4)串的长度相等且两串中对应位置的字符也相等40.描述以下概念的区别:空格串与空串答案:空格是一个字符,其ASCII码值是32。

空格串是由空格组成的串,其长度等于空格的个数。

空串是不含任何字符的串,即空串的长度是零。

41.广义表((a,b,c,d))的表头是(),表尾是()。

A. aB.()C.(a,b,c,d)D.(b,c,d)答案:C42.广义表(a,(b,c),d,e)的表头为()。

A. aB. a,(b,c)C. (a,(b,c))D.(a)答案:A43.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( )A.-A+B*C/DE B. -A+B*CD/E C.-+*ABC/DE D.-+A*BC/DE答案:D44.有关二叉树下列说法正确的是()A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2答案:B45.一棵树高为K的完全二叉树至少有()个结点A.2k–1 B. 2k-1–1 C. 2k-1 D. 2k答案:C46.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。

相关文档
最新文档