泓泰

计算机二【èr】级考【kǎo】试《公共基础》100题【tí】_设栈的顺序存储【chǔ】空间为s160

admin

本文目录一览

计算机二级中的栈是什么意思

计算机二级考试《公共基础》100题_设栈的顺序存储空间为s160-第1张-游戏相关-泓泰

栈是限定只在一端进行【háng】插入【rù】与删除的线性表,通【tōng】常称插入、删除的这一端为栈【zhàn】顶,另一端为栈底。当表中没有【yǒu】元素时称为空栈【zhàn】。栈顶元素总是后被插入的元素,从而也是先被【bèi】删除【chú】的元素【sù】;栈底元素总是先被【bèi】插入的【de】元素,从而也是后才能【néng】被【bèi】删除的【de】元素。栈是按【àn】照"先进【jìn】后【hòu】出"或"后进先出"的原则组【zǔ】织数据的。

拓展:栈的顺序存储及其运算

用一维数组S(1∶m)作为栈的顺序存储空间,其中m为容量。

在栈的顺序存储空间S(1∶m)中,S(bottom)为栈底【dǐ】元【yuán】素,S(top)为栈【zhàn】顶元素【sù】。top=0表示栈空;top=m表【biǎo】示栈【zhàn】满。

栈的基本运算有三种:入栈、退栈与读栈顶元素。

(1)入栈运算:入栈运算是指【zhǐ】在栈顶位置插【chā】入【rù】一个新元【yuán】素【sù】。首先将栈顶指针【zhēn】加一【yī】(即top加【jiā】1),然后将新元【yuán】素插入【rù】到栈【zhàn】顶指针【zhēn】指【zhǐ】向的位置。当栈顶指针【zhēn】已经指【zhǐ】向存储空间的后一【yī】个位置时,说明栈空【kōng】间已满,不可能再进行入栈操【cāo】作【zuò】。这种情况称为栈"上溢"错误【wù】。

(2)退栈运【yùn】算:退【tuì】栈是指取【qǔ】出栈顶元素并赋给一【yī】个指定的变【biàn】量。首先将栈顶元素(栈顶指针指向的【de】元素)赋给【gěi】一个指定【dìng】的变【biàn】量,然后将栈顶指针【zhēn】减【jiǎn】一(即top减1)。当【dāng】栈顶【dǐng】指针为【wéi】0时,说明栈空【kōng】,不可进行退栈操作。这种情况称为栈的"下溢"错误。

(3)读【dú】栈顶【dǐng】元素:读【dú】栈顶元素是指【zhǐ】将栈顶元素赋给一个指定的变量。这【zhè】个运算【suàn】不删除【chú】栈顶元【yuán】素,只是将它赋【fù】给一个变量,因【yīn】此栈【zhàn】顶指针【zhēn】不会改变【biàn】。当栈顶指针为0时,说明【míng】栈空,读不到栈顶元素【sù】。

计算机二级考试《公共基础》100题

  下面仅是公共基础【chǔ】部分的【de】第【dì】一章(数据【jù】结构)的【de】题的一部【bù】分(还有50多道发不【bú】上来【lái】了)

  1、 对长度为n的【de】线性【xìng】表排序,在最坏情况下【xià】,比较次数不是n(n-1)/2的排序方法是

  A) 快速排【pái】序 B) 冒泡排【pái】序 C) 直接插入排序 √D) 堆排【pái】序

  2、下列关于栈的叙述正确的是

  A) 栈按""先进先【xiān】出""组织数据 √B) 栈按""先进【jìn】后【hòu】出""组【zǔ】织数据【jù】

  C) 只能在栈底插入数据 D) 不能删除数据

  3、算法的空间复杂度是指

  √A) 算法在执行过程中所需要的计算机存储空间

  B) 算法所处理的数据量

  C) 算【suàn】法程序中的【de】语【yǔ】句或指【zhǐ】令条数【shù】 D) 算法在执行过程中所需要【yào】的临时工作【zuò】单元数

  4、某二叉树有【yǒu】5个度为【wéi】2的【de】结点,则该二叉树【shù】中的叶子结点数是【shì】

  A) 10 B) 8 √C) 6 D) 4

  5、 算法的有穷性是指

  √A) 算【suàn】法程【chéng】序的运行时【shí】间是有限的 B) 算法程【chéng】序所处理【lǐ】的数据量是有限的

  C) 算法程序的长度是有限的【de】 D) 算法只能被有限的用【yòng】户使【shǐ】用【yòng】

  6、下列叙述中正确的是

  A) 算法复杂度是指算法控制结构的复杂程度

  B) 算法复杂度是指设计算法的难度

  C) 算法的时间复杂度是指设计算法的工作量

  √D) 算法的复杂度包括时间复杂度与空间复杂度

  7、下列数据结构中,属于非线性结构的是

  A) 循环队列 B) 带链【liàn】队列 √C) 二叉树 D) 带链栈【zhàn】

  8、一【yī】个栈的初始状【zhuàng】态为空。现将元素1、2、3、4、5、A、B、C、D、E依【yī】次入栈【zhàn】,然后再【zài】依次出栈,则元素出栈的顺序是

  A) 12345ABCDE √B) EDCBA54321 C) ABCDE12345 D) 54321EDCBA

  9、下列叙述中正确的是

  A) 循环队【duì】列有队头和队尾两个指针【zhēn】,因此【cǐ】,循环队列是非线性结【jié】构

  B) 在循环队列中,只需要队头【tóu】指针【zhēn】就能【néng】反映队列中【zhōng】元素的动态变化情况

  C) 在循环【huán】队列【liè】中,只需要队尾【wěi】指针就能【néng】反映队列中元素的【de】动态【tài】变化【huà】情况

  √D) 循【xún】环队列【liè】中元素的个数是由【yóu】队头指【zhǐ】针和队尾【wěi】指针共同决定

  10、下列叙述中正确的是

  √A) 顺序存储结构的存储【chǔ】一定【dìng】是连续的,链【liàn】式存储结构的【de】存储空间【jiān】不一定是【shì】连续【xù】的

  B) 顺序存【cún】储结构只针对线【xiàn】性结构【gòu】,链式存储结构【gòu】只针对非【fēi】线性结构

  C) 顺序存储结构能【néng】存储有序表,链式存【cún】储【chǔ】结【jié】构【gòu】不能存储有序表

  D) 链式存储结构比顺序存储结构节省存储空间

  11、对于循环队列,下列叙述中正确的是

  A) 队头指针是固定【dìng】不变的 B) 队头指【zhǐ】针一【yī】定大于队尾【wěi】指针

  C) 队【duì】头指针一定小于队尾指针 √D) 队【duì】头【tóu】指针可【kě】以大于队尾【wěi】指针,也可以小于队尾指【zhǐ】针

  12、下列排序方法中,最坏情况下比较次数最少的是

  A) 冒泡排序 B) 简【jiǎn】单【dān】选择排序 C) 直接插【chā】入排【pái】序 √D) 堆排序【xù】

  13、下列叙述中正确的是

  A) 栈是""先进先出""的线【xiàn】性表 B) 队列是""先进后【hòu】出""的【de】线性【xìng】表【biǎo】

  C) 循环队列是【shì】非【fēi】线性结构 √D) 有序线性表既【jì】可【kě】以采用【yòng】顺序存【cún】储结构【gòu】,也可【kě】以采用链式存【cún】储结构

  14、支持子程序调用的数据结构是

  √A) 栈 B) 树 C) 队列 D) 二叉树

  15、下列数据结构中【zhōng】,能够按【àn】照""先进后出""原则【zé】存取数据的是

  A) 循环队列 √B) 栈 C) 队列 D) 二叉树

  16、下列叙述中正确的是

  A) 线性表的【de】链【liàn】式存储结构【gòu】与顺序存储结【jié】构所需要的存【cún】储空间是相同的

  √B) 线性表的链式【shì】存储结【jié】构所需【xū】要的存储空间一般要多【duō】于顺序【xù】存储结构

  C) 线性表的链式【shì】存储结【jié】构所需【xū】要的存储空间一般要少于【yú】顺序存【cún】储结【jié】构

  17、下列叙述中正确的是

  A) 栈是一种【zhǒng】先进先出【chū】的【de】线性表 B) 队列是一种后进先出的【de】线性表

  C) 栈与队列都是非线性【xìng】结构 √D) 栈与【yǔ】队列【liè】都是【shì】线性结构

  18、一棵完【wán】全二叉树共有【yǒu】360个结点,则在该二【èr】叉树中度【dù】为【wéi】1的结点个【gè】数为

  A) 0 √B) 1 C) 180 D) 181

  19、算法的时间复杂度是指

  A) 设计该算法所需【xū】的工作量 B) 执【zhí】行该算【suàn】法所【suǒ】需要的时【shí】间

  √C) 执行该算法时所需要的基本运算次数

  D) 算法中指令的条数

  20、下列关于栈叙述正确的是

  √A) 栈顶元素最先能被【bèi】删除 B) 栈顶元素【sù】最后才能被删【shān】除

  C) 栈底元素永远不能被删除

  21、下列叙述中正确的是

  A) 在栈【zhàn】中,栈中元素随栈【zhàn】底指针与栈【zhàn】顶指【zhǐ】针的变化而动态变化

  B) 在栈中,栈顶指【zhǐ】针不变【biàn】,栈中元素随栈底【dǐ】指针【zhēn】的变化而动态变化【huà】

  √C) 在栈中,栈底【dǐ】指【zhǐ】针不变【biàn】,栈中元素随栈顶指【zhǐ】针的变化而【ér】动态变化

  22、某二叉【chā】树共有7个【gè】结点,其中叶【yè】子【zǐ】结点【diǎn】只【zhī】有1个,则该二叉树的深【shēn】度为(假设根结点

  在第1层)

  A) 3 B) 4 C) 6 √D) 7

  23、设循环【huán】队列存储空间【jiān】为Q(1:50),初始状态为front=rear=50。经【jīng】过一系【xì】列入队和退队操作后【hòu】,front=rear=25,则该循【xún】环队列中元【yuán】素个数为

  A) 26 B) 25 C) 24 √D) 0或50

  24、下列叙述中正确的是

  A) 算【suàn】法就【jiù】是程【chéng】序【xù】 B) 设计【jì】算法时只需要考虑数据结构的【de】设计C) 设计算法时只需【xū】要【yào】考虑结果的可靠性√D) 以上三种说【shuō】法都不对【duì】

  25、下列叙述中正确的是

  A) 有一个以上根结点的数据结构不一定是非线性结构

  √B) 只有一个根结点的数据结构不一定是线性结构

  C) 循环链表是非线性结构 D) 双向链表是非线性结构

  26、下列关于二叉树的叙述中,正确的是

  A) 叶子结点总是比度为2的结点少一个

  √B) 叶子结点总是比度为2的结点多一个

  C) 叶子结点数是度为2的结点数的两倍

  D) 度为2的结点数是度为1的结点数的两倍

  27、下列各组的排序方法中,最坏情况下比较次数相同的是

  √A) 冒泡排【pái】序与快速排序 B) 简单插入排【pái】序与希尔【ěr】排序

  C) 堆排序与希尔排序 D) 快速排序与希尔排序

  28、下列叙述中正确的是

  A) 循环队列是队列的一种链式存储结构

  √B) 循环队列是队列的一种顺序存储结构

  C) 循【xún】环队列是非线性结构 D) 循环队【duì】列【liè】是【shì】一种【zhǒng】逻辑结构

  29、下列关于线性链表的叙述中,正确的是

  A) 各数据结点的存储空间【jiān】可以不连【lián】续,但它们的【de】存储【chǔ】顺【shùn】序与逻辑顺序【xù】必须一致

  B) 各【gè】数据【jù】结点的'存储顺【shùn】序与逻辑顺序【xù】可以不一致【zhì】,但它们的存储空间【jiān】必须【xū】连续

  √C) 进行插入与删除时,不需要移动表中的元素

  30、一【yī】棵二叉树【shù】共【gòng】有25个【gè】结点,其中5个是叶子结点,则度为1的【de】结点数为

  √A) 16 B) 10 C) 6 D) 4

  31、设循环队列存【cún】储空间为【wéi】Q(1:50)。初始状【zhuàng】态为front=rear=50。经过一系【xì】列入队和退队操【cāo】作后,front=14,rear=19,则该循环【huán】队列【liè】中的元素个数为【wéi】

  A) 46 B) 45 C) 6 √D) 5

  32、下列链表中,其逻辑结构属于非线性结构的是

  √A) 二叉链表 B) 循【xún】环【huán】链表【biǎo】 C) 双向链表 D) 带链的栈

  33、设【shè】循环队列的存储空间为Q(1: 35),初始【shǐ】状态为front=rear=35。现【xiàn】经过一【yī】系列【liè】入队与退队运算后,front=15,rear=15,则循【xún】环队列中的【de】元素个【gè】数为【wéi】

  A) 15 B) 16 C) 20 √D) 0或35

  34、下列关于栈的叙述中,正确的是

  A) 栈底元素一定是最后入栈的【de】元素 B) 栈顶元【yuán】素一定是最【zuì】先入栈【zhàn】的元【yuán】素

  √C) 栈操作遵循先进后出的原则

  35、设二叉树共有【yǒu】150个结点【diǎn】,其【qí】中度为1的结点有10个【gè】,则该二叉【chā】树中的叶子结点数为

  A) 71 B) 70 C) 69 √D) 不可能有这样的二叉树【shù】

  36、下列叙述中正确的是

  √A) 程序执行的效率与数据的存储结构密切相关

  B) 程序执行的效率只取决于程序的控制结构

  C) 程序执行的效率只取决于所处理的数据量

  37、下列与队列结构有关联的是

  A) 函数的【de】递归调用 B) 数组【zǔ】元素的引【yǐn】用 C) 多【duō】重循环的【de】执行 √D) 先到先服务【wù】的作业调度

  38、一个栈【zhàn】的初【chū】始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再【zài】依次出栈,则元素出【chū】栈的【de】顺序【xù】是【shì】

  A) 1,2,3,A,B,C B) C,B,A,1,2,3 √C) C,B,A,3,2,1 D) 1,2,3,C,B,A

  39、下列叙述中正确的是

  A) 一个算法的空间复杂度大,则其时间复杂度也必定大

  B) 一个算法的空间复杂度大,则其时间复杂度必定小

  C) 一个算法的时间复杂度大,则其空间复杂度必定小

  √D) 算法的时间复杂度与空间复杂度没有直接关系

  40、下列叙述中正确的是

  √A) 循环队列中的元素个【gè】数随队头【tóu】指针与队尾指针的变化而动态变【biàn】化【huà】

  B) 循环队列中的元素个数随队头指针的变化而动态变化

  C) 循环队列中的元素个数随队尾指针的变化而动态变化

  41、一棵二【èr】叉树中,共有80个【gè】叶【yè】子结点与70个【gè】度为【wéi】1的结点,则该二叉树中【zhōng】的总结点数【shù】为

  A) 219 √B) 229 C) 230 D) 231

  42、对长度为【wéi】10的线性表进【jìn】行冒泡排序,最坏【huài】情况【kuàng】下需要比【bǐ】较的次数为【wéi】

  A) 9 B) 10 √C) 45 D) 90

  43、下列叙述中正确的是

  A) 算法的效率【lǜ】只与问题的规【guī】模有关【guān】,而与【yǔ】数据的存储结构无关

  √B) 算法的时间复杂度是指执行算法所需要的计算工作量

  C) 数据的逻辑结构与存储结构是一一对应的

  D) 算法的时间复杂度与空间复杂度一定相关

  44、下列叙述中正确的是

  A) 线【xiàn】性表链式存储【chǔ】结构的存储空间一【yī】般要【yào】少于顺【shùn】序存【cún】储结构

  B) 线性表链式存储【chǔ】结【jié】构【gòu】与顺序存储结构【gòu】的存【cún】储空间都是【shì】连续的

  √C) 线性表【biǎo】链式【shì】存储结构【gòu】的存储空间可以【yǐ】是连续的,也可以是【shì】不连续的

  45、某【mǒu】二【èr】叉树共有12个结点,其中【zhōng】叶子结点只【zhī】有【yǒu】1个【gè】。则该二叉树的深度为(根结点在【zài】第【dì】1层)

  A) 3 B) 6 C) 8 √D) 12

  46、对长度为【wéi】n的【de】线性表作快速排序,在【zài】最坏情况下【xià】,比较次数【shù】为

  A) n B) n-1 C) n(n-1) √D) n(n-1)/2

  47、下列叙述中正确的是

  A) 有且只有一个根结点的数据结构一定是线性结构

  B) 每一个结【jié】点最多有一个前件【jiàn】也最多有一个【gè】后件的数【shù】据结【jié】构一定是线性结构

  C) 有且只有一个根结点的数据结构一定是非线性结构

  √D) 有且只有一【yī】个根结点的数据结【jié】构可【kě】能是【shì】线性结构【gòu】,也可能是非【fēi】线性结【jié】构

  48、下列叙述中错误的是

  A) 在【zài】双向链【liàn】表中,可以从任何一个结点【diǎn】开始【shǐ】直接遍历到所【suǒ】有结点

  B) 在循【xún】环【huán】链表【biǎo】中,可以从任何一个结点开始直接遍历到所【suǒ】有结点

  √C) 在线性单链表中,可以从【cóng】任何一【yī】个结点开始【shǐ】直接遍历到所【suǒ】有结点

  D) 在二叉链表中,可以从根结点开始遍历到所有结点

  49、某【mǒu】二叉树共【gòng】有【yǒu】13个结点,其中有4个度【dù】为1的结点,则叶子结【jié】点数为

  √A) 5 B) 4 C) 3 D) 2

  50、设栈的顺序存【cún】储空【kōng】间为S(1: 50),初始【shǐ】状【zhuàng】态为top=0。现【xiàn】经过一系列【liè】入栈与退栈运算后,top=20,则当前栈中的元素【sù】个数为

  A) 30 B) 29 √C) 20 D) 19

  51、下列叙述中正确的是

  A) 栈与队【duì】列【liè】都只能顺序存储 √B) 循环队列是【shì】队列的顺序存【cún】储结构

  C) 循环链表是循环队列的链式存储结构

  52、设某二叉树的前序【xù】序列【liè】为【wéi】ABC,中序序列为CBA,则该二【èr】叉树的后序序列为

  A) BCA √B) CBA C) ABC D) CAB

  53、下列排序方法中,最坏情况下时间复杂度最小的是

  A) 冒泡排序 B) 快速排【pái】序【xù】 √C) 堆排序 D) 直接【jiē】插入排【pái】序

  54、为了对有序表进行对分查找,则要求有序表

  √A) 只能【néng】顺序存【cún】储 B) 只能链式存储【chǔ】 C) 可【kě】以顺序存【cún】储【chǔ】也可【kě】以链式存储D) 任何存储方式

  55、设某二叉树的后【hòu】序序【xù】列【liè】为CBA,中序序【xù】列为【wéi】ABC,则该二叉树的前【qián】序序列为

  A) BCA B) CBA √C) ABC D) CAB

  56、下列叙述中正确的是

  A) 存储空间不连续的所有链表一定是非线性结构

  B) 结点中有多个指针域的所有链表一定是非线性结构

  C) 能顺序存储的数据结构一定是线性结构

  √D) 带链的栈与队列是线性结构

  57、算法时间复杂度的度量方法是

  A) 算法程【chéng】序的长度 √B) 执行算法所【suǒ】需要的基本运算次数C) 执行算【suàn】法所需要的所【suǒ】有运【yùn】算次数D) 执【zhí】行算法【fǎ】所需要的时间

  58、设【shè】循环队【duì】列【liè】为Q(1: m),初始状态为front=rear=m。现【xiàn】经过【guò】一系列的入队【duì】与退队运算后,front=rear=1,则该循环队列【liè】中【zhōng】的元素个数为

  A) 1 B) 2 C) m-1 √D) 0或m

  59、在最坏情况下

  A) 快速排序的时间复杂度比冒泡排序的时间复杂度要小

  B) 快速排序的时间复杂度比希尔排序的时间复杂度要小

  √C) 希【xī】尔排序【xù】的时间复【fù】杂度比直接插【chā】入排序的时间复【fù】杂度要【yào】小

  D) 快【kuài】速排序的时【shí】间复杂【zá】度与【yǔ】希尔排序的时【shí】间复杂度【dù】是一样的

  60、在深度为7的满二叉树中,度为2的结点个数为

  A) 64 √B) 63 C) 32 D) 31

  61、设【shè】栈【zhàn】的顺序存储空间为【wéi】S(1: m),初始状态为top=m+1。现经【jīng】过一系【xì】列入栈与退栈运【yùn】算后,top=20,则当【dāng】前栈中的元素个数【shù】为

  A) 30 B) 20 √C) m-19 D) m-20

  62、算法空间复杂度的度量方法是

  A) 算法程【chéng】序【xù】的【de】长【zhǎng】度 B) 算法所处理的数据量C) 执行算法所需要的工作单元【yuán】√D) 执【zhí】行算【suàn】法所需要的【de】存储空间

  63、设【shè】循环【huán】队列为【wéi】Q(1: m),其初【chū】始【shǐ】状态【tài】为front=rear=m。经过一系列【liè】入队与退队【duì】运算后,front=15,rear=20。现要在该循环队【duì】列【liè】中寻找最【zuì】大值的元素,最坏情况【kuàng】下需要比较的次数为

  √A) 4 B) 6 C) m-5 D) m-6

  64、下列叙述中正确的是

  A) 循【xún】环队列属于队列【liè】的【de】链【liàn】式存储结构B) 双向【xiàng】链【liàn】表是二【èr】叉树的链式存储结构

  C) 非线性结【jié】构只能【néng】采用链式存储结构√D) 有【yǒu】的非线【xiàn】性结构【gòu】也【yě】可以采用顺序存储【chǔ】结构

  65、某二叉树【shù】中有【yǒu】n个叶【yè】子结【jié】点,则该【gāi】二叉树中度为2的结点数为

  A) n+1 √B) n-1 C) 2n D) n/2

  66、下列叙述中错误的是

  A) 算法【fǎ】的时间【jiān】复杂度与算法所处理数【shù】据的【de】存储结【jié】构有直接关系

  B) 算法的空间复杂【zá】度与算法所处理【lǐ】数据的【de】存【cún】储结构有直接关系

  √C) 算法的时间复杂度与空间复杂度有直接关系

  67、设栈的【de】顺序【xù】存储空间为S(0:49),栈底【dǐ】指针bottom=49,栈顶指针【zhēn】top=30(指向栈【zhàn】顶元素)。则栈中的【de】元【yuán】素【sù】个【gè】数为

  A) 30 B) 29 √C) 20 D) 19

  68、某二叉【chā】树的【de】前序序列为ABCDEFG,中序【xù】序列为DCBAEFG,则该二叉树的深度(根【gēn】结点【diǎn】在第1层【céng】)为

  A) 2 B) 3 √C) 4 D) 5

  69、下列叙述中正确的是

  A) 存储空间连续的数据结构一定是线性结构

  B) 存储空间不连续的数据结构一定是非线性结构

  C) 没有根结点的非空数据结构一定是线性结构

  √D) 具有两个根结点的数据结构一定是非线性结构

  70、下列叙述中正确的是

  A) 带链【liàn】队列的存储空间【jiān】可以不连【lián】续,但队头指针必【bì】须大于队尾指针

  B) 带【dài】链队列的存储空间【jiān】可以不连续,但【dàn】队头指针【zhēn】必须小【xiǎo】于队尾指针

  √C) 带链【liàn】队列的存【cún】储【chǔ】空间可以不连续,且队头指针【zhēn】可以大于也【yě】可以小于队【duì】尾指针

  71、设循环队列为Q(1:m),其初【chū】始状态【tài】为front=rear=m。经过一系【xì】列入队【duì】与退【tuì】队运算后,front=20,rear=15。现【xiàn】要【yào】在该【gāi】循【xún】环队列【liè】中寻找最小值的元素,最坏情况下需要【yào】比较的次数为

  A) 5 B) 6 C) m-5 √D) m-6

  72、某二【èr】叉树的前序序列为ABCDEFG,中序序列【liè】为DCBAEFG,则【zé】该【gāi】二叉【chā】树的后序序列为

  A) EFGDCBA B) DCBEFGA C) BCDGFEA √D) DCBGFEA

  73、下列叙述中正确的是

  A) 在链表中【zhōng】,如果每个【gè】结点有两个指【zhǐ】针域,则【zé】该【gāi】链表一【yī】定是非线性结构

  √B) 在链表中,如【rú】果有两个结点的同一个指针域【yù】的值相等【děng】,则该链表一【yī】定【dìng】是非线性【xìng】结构【gòu】

  C) 在链表中,如果【guǒ】每个结点有两个指【zhǐ】针域【yù】,则该【gāi】链【liàn】表一定是【shì】线性结构

  D) 在【zài】链表中,如果有【yǒu】两【liǎng】个结点的同一个指【zhǐ】针域的值相【xiàng】等,则该链【liàn】表一定是线性【xìng】结构

  74、下列叙述中错误的是

  A) 在带链队列中,队头指针和队尾指针都是在动态变化的

  √B) 在带链栈中,栈顶指针和栈底指针都是在动态变化的

  C) 在带链栈中,栈【zhàn】顶指【zhǐ】针是在动【dòng】态变【biàn】化的,但栈底指针是不变【biàn】的

  75、设数据元素【sù】的【de】集合【hé】D={ 1,2,3,4,5 },则满足下列关系R的数据结构【gòu】中【zhōng】为线性【xìng】结构的【de】是

  A) R={ (1,2), (3,4), (5,1) } √B) R={ (1,3), (4,1), (3,2), (5,4) }

  C) R={ (1,2), (2,3), (4,5) } D) R={ (1,3), (2,4), (3,5) }

  76、下列叙述中正确的是

  √A) 链表结点中具有两【liǎng】个指【zhǐ】针【zhēn】域的数据结构可以是线性结【jié】构,也可以是【shì】非【fēi】线性【xìng】结构【gòu】

  B) 线【xiàn】性表的链【liàn】式存储结构中,每个结【jié】点【diǎn】必须有指向前件【jiàn】和指向后件的两个指针

  C) 线性表的【de】链式存【cún】储结【jié】构中,每个结点只【zhī】能有一个指向【xiàng】后件的指针

  D) 线性表的链式存储结构中,叶子结点的指针只能是空

  77、一个栈的初【chū】始状态为空,现将元素【sù】A,B,C,D,E依次【cì】入栈,然后依次【cì】退栈三次【cì】,并【bìng】将【jiāng】退栈的三个元【yuán】素依【yī】次入【rù】队(原【yuán】队列为空),最【zuì】后将队列中的元素全部【bù】退出。则元素退【tuì】队的顺序为

  A) ABC B) CBA √C) EDC D) CDE

  78、某二叉树的中序序列为DCBAEFG,后【hòu】序序列【liè】为DCBGFEA,则该二叉树的深度(根结点【diǎn】在【zài】第1层)为

  A) 5 √B) 4 C) 3 D) 2

  79、下列叙述中正确的是

  A) 所谓算法【fǎ】就是计算方法 √B) 程序可以【yǐ】作为算法的一种描述【shù】方法

  C) 算法设计只需考虑得到计算结果 D) 算【suàn】法【fǎ】设计【jì】可【kě】以忽【hū】略算【suàn】法的运算时间

  80、下列各序列中不是堆的是

  A) (91,85,53,36,47,30,24,12) B) (91,85,53,47,36,30,24,12)

  √C) (47,91,53,85,30,12,24,36) D) (91,85,53,47,30,12,24,36)

  81、深度为5的完全二叉树的结点数不可能是

  √A) 15 B) 16 C) 17 D) 18

  82、下列叙述中正确的是

  √A) 循环队【duì】列是顺序【xù】存储结构 B) 循环队列是【shì】链【liàn】式【shì】存储结【jié】构

  C) 循环队列是非【fēi】线性【xìng】结构 D) 循环队【duì】列的插入运【yùn】算不【bú】会发生溢出现象

  83、下列叙述中正确的是

  A) 所有数据【jù】结构必须有根【gēn】结点 B) 所有数据结【jié】构【gòu】必须有终端结点(即【jí】叶子结点)

  C) 只有一个根【gēn】结点,且只有一个【gè】叶子【zǐ】结点【diǎn】的【de】数据结构一定是线性结构

  √D) 没有根结点或没有【yǒu】叶【yè】子结点的数据结构一定是非线性【xìng】结构【gòu】

  84、下列关于算法的描述中错误的是

  A) 算法强调动态的执行过程,不同于静态的计算公式

  B) 算法必须能在有限个步骤之后终止

  C) 算【suàn】法设计必须考虑算法【fǎ】的复杂【zá】度 √D) 算法的【de】优劣取决于运行算法程【chéng】序【xù】的环境

  85、线【xiàn】性表的链式存【cún】储结构与顺序存储结构相比,链【liàn】式存【cún】储结【jié】构的优点有

  A) 节省【shěng】存【cún】储空间 √B) 插入与删除运算效率高【gāo】C) 便于查找 D) 排序时减少【shǎo】元【yuán】素的比较【jiào】次数

  86、深度为7的完全二叉树中【zhōng】,共有【yǒu】125个结点【diǎn】,则该完全二【èr】叉【chā】树中的【de】叶子结点数【shù】为

  A) 62 √B) 63 C) 64 D) 65

  87、下列叙述中正确的是

  A) 所谓有序表是指在顺序存储空间内连续存放的元素序列

  B) 有序表只能顺序存储在连续的存储空间内

  √C) 有序表【biǎo】可以用链接存【cún】储方式【shì】存储【chǔ】在【zài】不连续【xù】的存储空间内

  D) 任何存储方式的有序表均能采用二分法进行查找

  88、下列叙述中正确的是

  A) 结点中具有两个指针域的链表一定是二叉链表

  √B) 结点中具有两【liǎng】个指针域的链表可以是线性结【jié】构,也可以是【shì】非线性结【jié】构【gòu】

  C) 二叉树只能采用链【liàn】式【shì】存储结构【gòu】 D) 循环链表【biǎo】是非线性【xìng】结构

  89、设某二叉树【shù】中,共有140个结点,其中有40个度【dù】为1的结点【diǎn】。则

  A) 该二叉树中【zhōng】有51个叶子结【jié】点【diǎn】 B) 该二叉树【shù】中有50个叶子结点

  C) 该二叉【chā】树中有51个度为2的结【jié】点 D) 该二叉树中【zhōng】有50个【gè】度为2的结点【diǎn】

  √E) 不可能有这样的二叉树

  90、带链的栈与顺序存储的栈相比,其优点是

  A) 入栈与退栈操作方便 B) 可以省略栈底指针

  √C) 入栈操作时不会受栈存储空间的限制而发生溢出

  91、某二叉【chā】树的前【qián】序【xù】序列为ABCD,中序序列为DCBA,则后序序列为【wéi】

  A) BADC √B) DCBA C) CDAB D) ABCD

  92、下列关于算法复杂度叙述正确的是

  A) 最坏情【qíng】况下的时间复杂【zá】度一定高于平均【jun1】情况的【de】时间【jiān】复杂度

  √B) 时间复杂度与所用的计算工具无关

  C) 对同一【yī】个问【wèn】题,采用不同【tóng】的算【suàn】法,则它们的时间复杂度【dù】是相同的

  D) 时间复杂度与采用的算法描述语言有关

  93、设有栈【zhàn】S和队列Q,初始状态均为【wéi】空。首先依次将A,B,C,D,E,F入栈【zhàn】,然后【hòu】从栈中退出三个元素依次入队【duì】,再将X,Y,Z入栈后,将【jiāng】栈中所【suǒ】有元素【sù】退出并依次入队【duì】,最后【hòu】将队列中所有元素退出【chū】,则退队元素的顺序【xù】为

  A) DEFXYZABC √B) FEDZYXCBA C) FEDXYZCBA D) DEFZYXABC

  94、下列叙述中正确的是

  A) 有两【liǎng】个指针域的【de】链【liàn】表称为二叉链表【biǎo】B) 循环链表是循环【huán】队【duì】列的链式【shì】存储结构

  C) 带链的栈有栈顶指针和栈底指针,因此又称为双重链表

  √D) 结点中具有多个指针域的链表称为多重链表

  95、某【mǒu】二叉树共有845个结【jié】点,其中叶【yè】子结点有45个,则度【dù】为1的结点数为

  A) 400 B) 754 √C) 756 D) 不【bú】确定

  96、设【shè】数【shù】据集合为D={ 1,3,5,7,9 },D上【shàng】的关系为R,下列数据结【jié】构B=(D,R)中为非【fēi】线性【xìng】结构的【de】是

  A) R={ (5,1), (7,9), (1,7), (9,3) }

  B) R={ (9,7), (1,3), (7,1), (3,5) }

  C) R={ (1,9), (9,7), (7,5), (5,3) }

  √D) R={ (1,3), (3,5), (5,9) }

  97、深度为7的二叉树共有127个结点,则下【xià】列说【shuō】法中【zhōng】错误的【de】是

  √A) 该【gāi】二叉树有一【yī】个度为【wéi】1的【de】结点 B) 该二叉树【shù】是满二叉树

  C) 该【gāi】二叉树是完全二叉树 D) 该【gāi】二叉树有64个叶子结【jié】点

  98、下列叙述中正确的是

  A) 非【fēi】线性结构【gòu】只能采用链【liàn】式【shì】存【cún】储结构B) 非线性结构只能用【yòng】多重【chóng】链表表示

  C) 所有数据结构既【jì】可以采用顺序存储结构,也可以采【cǎi】用链【liàn】式【shì】存储【chǔ】结构

  √D) 有的非线性结构也能采用顺序存储结构

  99、某【mǒu】二【èr】叉树【shù】的中序序列为BDCA,后序序列为DCBA,则【zé】前序序列为【wéi】

  A) DCBA B) BDCA √C) ABCD D) BADC

  100、某完全二【èr】叉树共有256个结【jié】点,则该完【wán】全【quán】二叉【chā】树的【de】深度为

  A) 7 B) 8 √C) 9 D) 10

栈中元素个数问题

这个问【wèn】题【tí】是【shì】这样的【de】,你在【zài】集合中读入一个【gè】元素,就入栈【zhàn】,那么读完【wán】所有的集合元【yuán】素之后【hòu】,栈内的元素数目就和原来集合中的相【xiàng】等。那么同时【shí】伴随出栈的动【dòng】作。当栈中元素都出【chū】去之【zhī】后,每次【cì】出栈+1,那【nà】么【me】你就可以元素任何时【shí】候进栈任何时候也可以出栈【zhàn】,在出栈的时候设一个int
s
,让其s++到集【jí】合的末【mò】端,并且让所有栈【zhàn】内的元素【sù】出栈,s就是【shì】所求

判定一个顺序栈为栈满的条件

表示【shì】顺序栈的数【shù】组下标如果【guǒ】从0开始【shǐ】,栈空的条件是top==-1,栈满的条件是【shì】top==maxsize-1;如果从1开始【shǐ】,top==1表示栈空,top==maxsize表示栈【zhàn】满。

栈的【de】元素依次【cì】存【cún】放在一个一维【wéi】数组【zǔ】中。下标小的【de】一端作为栈【zhàn】底。用一个变【biàn】量记录栈顶【dǐng】位置,称“栈顶指针”。

扩展资料:

栈的【de】顺序存储结构是利【lì】用内存中的一片【piàn】起始位置确【què】定【dìng】的【de】连续存储区域来存【cún】放栈中的所【suǒ】有元素,另外为了指【zhǐ】示【shì】栈顶的准确位【wèi】置【zhì】,还需要引入一个栈【zhàn】顶指示变量top,采用顺序存储【chǔ】结构的栈称为顺序栈(sequence stack)。

设数组data[MAXSIZE]为栈的存储空间【jiān】,其中MAX-SIZE是一【yī】个预【yù】先【xiān】设定【dìng】的常数【shù】,为允许进栈【zhàn】结点的最【zuì】大可能数目,即栈【zhàn】的容量。初【chū】始【shǐ】时栈空,top等【děng】于0。当top不【bú】等【děng】于0时,data[0]为栈底元素,即为【wéi】当前停留在栈中时间最长的元素。

而【ér】data[top-1]为最【zuì】后入栈的【de】元素,即为栈顶元素【sù】。当top==MAXSIZE时【shí】,表示栈满【mǎn】,如【rú】果此【cǐ】时再有结点进栈【zhàn】,将发生称之【zhī】为“上溢”(语【yǔ】法上表【biǎo】现为“数【shù】组越界”)的【de】错误,而当top==0时再执行出栈操作,将发生称【chēng】之为“下【xià】溢”的错误。

给出了栈容量为6时,入栈、出栈操作以及栈【zhàn】空【kōng】、栈【zhàn】满【mǎn】等几【jǐ】种典型的栈状态。由于顺序存储结构多采用一【yī】维数组存放栈【zhàn】,因此【cǐ】必须特别注【zhù】意“栈上溢【yì】”错【cuò】误的发生【shēng】;在实现入栈操【cāo】作【zuò】时,先判断是【shì】否栈满(stack full),如果栈满,及时处理。

参考资料来源:百度百科-顺序栈

数据结构题目解答,急急急,今天之前给出答案追加悬赏

(1) A D
(2) B
(3) C
(4) A
(5) B A
(6)B
(7) C
(8) C
(9) C
(10) A
(11) B
(12) D
(13) D
(14) D
(15) D

设栈的存储【chǔ】空间为S(1:m),初始状【zhuàng】态为【wéi】TOP=m+1。经过一系列入栈与【yǔ】退【tuì】栈操作后,TOP=m

m+1 。

这个栈是从栈顶向栈底压【yā】的,一般【bān】平时【shí】是【shì】从栈底向栈顶【dǐng】压,这【zhè】道题目中是【shì】倒过来的。

若TOP≥n时,则给【gěi】出溢【yì】出信息,作出错处理(进栈【zhàn】前首先检查【chá】栈是否已满,满则溢出);置TOP=TOP+1(栈【zhàn】指【zhǐ】针加【jiā】1,指向进栈地址);S(TOP)=X,结束【shù】(X为新【xīn】进栈的元素)。



扩展资料:

若TOP≤0,则给出下溢信息【xī】,作【zuò】出错处理(退【tuì】栈前【qián】先【xiān】检查是否已为空栈, 空【kōng】则【zé】下溢【yì】);X=S(TOP),(退栈后的元素赋给X):TOP=TOP-1,结束(栈指针减1,指向【xiàng】栈顶)。

定义stack的简单代码:

stackint sta;

入栈:sta.push(x);

出栈:sta.pop();

判断栈的大小: sta.size();

判断栈是否为空:sta.empty();

标签: #计算机二级考试公共基础100题_设栈的顺序存储空间为s160