泓泰

计算【suàn】机二级考试《公共基础》100题_设【shè】栈的顺序存储【chǔ】空间为【wéi】s160

admin

本文目录一览

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

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

栈是限定只在一端【duān】进行插入与删除的线【xiàn】性【xìng】表,通常称【chēng】插入、删【shān】除的这一端【duān】为栈【zhàn】顶,另一【yī】端【duān】为栈底。当表【biǎo】中没有元素时【shí】称为【wéi】空【kōng】栈。栈顶【dǐng】元素总是后被插入的【de】元素,从而【ér】也是先被【bèi】删除【chú】的元素;栈底元【yuán】素总是【shì】先被【bèi】插入的元【yuán】素,从而也是后才能被删除的【de】元素。栈是按照"先进后出"或"后进先出"的原则组织数据的。

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

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

在【zài】栈的顺序存储空【kōng】间S(1∶m)中,S(bottom)为栈底元素【sù】,S(top)为栈顶元素【sù】。top=0表示栈空;top=m表示【shì】栈【zhàn】满。

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

(1)入栈运算:入栈运算是指在栈【zhàn】顶位置插入一个新【xīn】元素。首【shǒu】先将栈【zhàn】顶指【zhǐ】针加一(即top加1),然【rán】后将新元【yuán】素【sù】插入到栈顶指【zhǐ】针指向的位置。当栈顶指针【zhēn】已经指【zhǐ】向存储【chǔ】空间的后一个位置时【shí】,说明栈空间已满,不可能【néng】再进【jìn】行【háng】入栈操作。这【zhè】种【zhǒng】情【qíng】况称为栈"上溢"错误。

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

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

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

  下面仅【jǐn】是公共基础部【bù】分的第一章(数据结构)的题的【de】一【yī】部分【fèn】(还有50多道发【fā】不上【shàng】来了)

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

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

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

  A) 栈按【àn】""先进先出""组织数据 √B) 栈按【àn】""先进后出""组织数据

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

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

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

  B) 算法所处理的数据量

  C) 算法程【chéng】序中的语句或指令条数 D) 算法在执【zhí】行过【guò】程【chéng】中所【suǒ】需要的临时【shí】工作单元数

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

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

  5、 算法的有穷性是指

  √A) 算【suàn】法程序的运行【háng】时间是有限的 B) 算【suàn】法程序所【suǒ】处理的【de】数据量是有【yǒu】限的

  C) 算法程序的长度是有限的【de】 D) 算法只【zhī】能【néng】被有限的【de】用户使用

  6、下列叙述中正确的是

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

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

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

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

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

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

  8、一【yī】个栈的初始状态为【wéi】空【kōng】。现将元【yuán】素1、2、3、4、5、A、B、C、D、E依次入栈,然后【hòu】再依【yī】次出栈,则元素出栈的【de】顺序是

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

  9、下列叙述中正确的是

  A) 循环队【duì】列有队头和队【duì】尾两个指针,因此,循【xún】环队【duì】列是【shì】非线性结构

  B) 在循环队【duì】列中,只需【xū】要【yào】队【duì】头指针就能【néng】反映队列中元【yuán】素的动态变化情【qíng】况

  C) 在循【xún】环队【duì】列【liè】中,只需要队尾指针就能反映队列【liè】中元【yuán】素的动态【tài】变化情况

  √D) 循【xún】环队列中元素的个数【shù】是由队头指针【zhēn】和队尾指针【zhēn】共同决【jué】定

  10、下列叙述中正确的是

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

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

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

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

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

  A) 队【duì】头指针是【shì】固定不变【biàn】的 B) 队头指针一定大于队【duì】尾指针

  C) 队头指针一定小于队尾指针【zhēn】 √D) 队【duì】头指针可以大于队尾【wěi】指针【zhēn】,也可以小于队尾指针

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

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

  13、下列叙述中正确的是

  A) 栈是""先进先出""的线【xiàn】性表 B) 队列是""先【xiān】进【jìn】后出""的线性表

  C) 循环【huán】队列是非线性结【jié】构 √D) 有序线【xiàn】性表既可以【yǐ】采用顺序存储结构,也【yě】可以采用链【liàn】式存【cún】储结构【gòu】

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

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

  15、下列数据结构中,能【néng】够按照""先进后出【chū】""原【yuán】则存取数据【jù】的是

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

  16、下列叙述中正确的是

  A) 线性【xìng】表的【de】链式存储结构与顺【shùn】序存储结构所需要的【de】存【cún】储空【kōng】间是相同的

  √B) 线性【xìng】表的链式【shì】存储结构所需要【yào】的存【cún】储【chǔ】空间一般要多于顺序存储结构

  C) 线性【xìng】表的链式存储结构所需要【yào】的存【cún】储【chǔ】空间一般要少于顺序存储【chǔ】结构

  17、下列叙述中正确的是

  A) 栈【zhàn】是【shì】一种先进先出的线性表 B) 队列是一种后【hòu】进先【xiān】出【chū】的线性表【biǎo】

  C) 栈与队列【liè】都是【shì】非线性结【jié】构 √D) 栈与队【duì】列都是线性结构

  18、一棵完全二叉树共有360个结点【diǎn】,则在该二叉树中【zhōng】度为1的【de】结点个数为

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

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

  A) 设计该算法所需的工作量 B) 执行该【gāi】算【suàn】法所需要【yào】的时间

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

  D) 算法中指令的条数

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

  √A) 栈顶元素【sù】最【zuì】先能被删除 B) 栈【zhàn】顶元【yuán】素最后【hòu】才能被删除

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

  21、下列叙述中正确的是

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

  B) 在栈中,栈顶【dǐng】指【zhǐ】针【zhēn】不【bú】变,栈中元素随【suí】栈底指针的变化而动态变化

  √C) 在【zài】栈【zhàn】中,栈底指【zhǐ】针不【bú】变,栈中元素随栈顶指针的变化而动态变化

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

  在第1层)

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

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

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

  24、下列叙述中正确的是

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

  25、下列叙述中正确的是

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

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

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

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

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

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

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

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

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

  √A) 冒泡排序与【yǔ】快速【sù】排序 B) 简单插【chā】入排序与希尔排序

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

  28、下列叙述中正确的是

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

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

  C) 循环队【duì】列是非【fēi】线性结构 D) 循环队列是一种逻辑结【jié】构

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

  A) 各数据结【jié】点的存储空间可以【yǐ】不连续【xù】,但它们的存【cún】储顺序与【yǔ】逻辑顺【shùn】序必须一致

  B) 各【gè】数据结点【diǎn】的'存储顺序与逻辑顺序可以不一【yī】致,但它【tā】们的存储空间必须连【lián】续【xù】

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

  30、一【yī】棵二叉【chā】树共有【yǒu】25个结点,其中5个是叶子结点【diǎn】,则度为1的结【jié】点【diǎn】数为

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

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

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

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

  √A) 二叉链表 B) 循环链表【biǎo】 C) 双向【xiàng】链表 D) 带链【liàn】的栈

  33、设循环【huán】队列的存【cún】储【chǔ】空间为Q(1: 35),初始状态为front=rear=35。现经过一系列【liè】入队与【yǔ】退【tuì】队【duì】运算【suàn】后,front=15,rear=15,则循环队列中的【de】元素个数为

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

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

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

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

  35、设二【èr】叉树共【gòng】有150个结点,其中度为1的结点有10个,则该二叉【chā】树中的【de】叶【yè】子【zǐ】结点数【shù】为

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

  36、下列叙述中正确的是

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

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

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

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

  A) 函数的递归【guī】调用 B) 数组元【yuán】素的引用 C) 多重循环的【de】执行【háng】 √D) 先到先服务的作【zuò】业调度

  38、一个栈的【de】初始状态【tài】为空。现将元素1,2,3,A,B,C依次入栈【zhàn】,然后【hòu】再依【yī】次出栈【zhàn】,则元素【sù】出栈的顺序是

  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) 循环【huán】队列中的元【yuán】素个数随队【duì】头指针与【yǔ】队尾指针的变化而动态变化

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

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

  41、一【yī】棵二叉树中,共有【yǒu】80个叶子结【jié】点与【yǔ】70个度为【wéi】1的结点,则该【gāi】二叉树中的【de】总结【jié】点数为

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

  42、对长度为10的线【xiàn】性表进行冒泡排序,最坏情况下【xià】需要【yào】比较的【de】次数【shù】为

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

  43、下列叙述中正确的是

  A) 算法的效率只与问【wèn】题的【de】规模【mó】有关,而与数【shù】据的存储结【jié】构【gòu】无关

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

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

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

  44、下列叙述中正确的是

  A) 线性表链式存储结【jié】构的存储空【kōng】间一般【bān】要少于顺【shùn】序存储结构

  B) 线性【xìng】表链式【shì】存储结构与顺【shùn】序存储结构的【de】存储空间【jiān】都是连续的

  √C) 线性表【biǎo】链【liàn】式存【cún】储结构的存储空间可以是连续【xù】的【de】,也可以【yǐ】是不连续的

  45、某二叉树共【gòng】有【yǒu】12个结点,其中叶子结点【diǎn】只有【yǒu】1个【gè】。则该【gāi】二【èr】叉树的深度为(根结点在第1层【céng】)

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

  46、对长度为n的线性表作快速【sù】排序,在最【zuì】坏【huài】情况【kuàng】下,比较次数为

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

  47、下列叙述中正确的是

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

  B) 每【měi】一个结点【diǎn】最多有一个前件也最多有一个后件【jiàn】的数据结构【gòu】一定是【shì】线性结构【gòu】

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

  √D) 有且【qiě】只有一个根【gēn】结点的【de】数【shù】据结构【gòu】可能是线性结构【gòu】,也可能是非线性结【jié】构

  48、下列叙述中错误的是

  A) 在双向链【liàn】表【biǎo】中,可以【yǐ】从任何一个【gè】结点开始【shǐ】直接遍历到所有结【jié】点

  B) 在循【xún】环链【liàn】表中【zhōng】,可【kě】以从任【rèn】何一【yī】个结点开始直接遍历到所有结点

  √C) 在【zài】线性单链表中【zhōng】,可【kě】以从任何一【yī】个结点开始【shǐ】直【zhí】接遍历到所有结点

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

  49、某【mǒu】二【èr】叉树共【gòng】有13个结点,其【qí】中有4个度为1的结点,则叶子结点数【shù】为

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

  50、设栈的顺【shùn】序存储空【kōng】间为S(1: 50),初【chū】始状态为top=0。现经【jīng】过一系【xì】列入栈与【yǔ】退栈运算后【hòu】,top=20,则当前栈中【zhōng】的元素个数为

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

  51、下列叙述中正确的是

  A) 栈与队【duì】列都【dōu】只能【néng】顺序存储 √B) 循环队【duì】列是队列的【de】顺【shùn】序存储结构

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

  52、设某【mǒu】二叉树【shù】的前序序列【liè】为ABC,中序序列为【wéi】CBA,则该二叉【chā】树的后序序列为

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

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

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

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

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

  55、设某二叉树【shù】的后序序列【liè】为CBA,中序【xù】序列【liè】为ABC,则该【gāi】二叉树的前序序列为

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

  56、下列叙述中正确的是

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

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

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

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

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

  A) 算法程序【xù】的长度【dù】 √B) 执行【háng】算法所需【xū】要的基【jī】本运算次数C) 执行算法所需【xū】要的所有运算次数D) 执行【háng】算【suàn】法【fǎ】所需要的时间

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

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

  59、在最坏情况下

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

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

  √C) 希尔排【pái】序的时间复杂度比直【zhí】接插【chā】入【rù】排序的时间复【fù】杂度要小

  D) 快速排序【xù】的时间复【fù】杂度【dù】与希尔排序的时间复杂【zá】度是【shì】一样的

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

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

  61、设栈的【de】顺序存【cún】储【chǔ】空间为S(1: m),初始状【zhuàng】态为top=m+1。现经过一系列入栈与退栈运算【suàn】后,top=20,则【zé】当前栈中的元【yuán】素个【gè】数【shù】为

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

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

  A) 算法程【chéng】序的长度 B) 算法所【suǒ】处理的数据量【liàng】C) 执行【háng】算法所需要的【de】工【gōng】作单元√D) 执行算【suàn】法所需要的存储空【kōng】间

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

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

  64、下列叙述中正确的是

  A) 循环【huán】队列【liè】属于【yú】队列的链式存储结构B) 双向链表是二叉树的链式存【cún】储结【jié】构

  C) 非线【xiàn】性【xìng】结构【gòu】只能采【cǎi】用链式存储结构√D) 有【yǒu】的非线性结构也可以采用顺【shùn】序存储结【jié】构

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

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

  66、下列叙述中错误的是

  A) 算【suàn】法的时间复杂度与算法所处理数据的【de】存【cún】储【chǔ】结构【gòu】有直接关系

  B) 算法的【de】空间复杂度与【yǔ】算法所处理数【shù】据的存【cún】储结构有直【zhí】接关【guān】系

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

  67、设栈的顺【shùn】序存储空间为S(0:49),栈底指针bottom=49,栈【zhàn】顶指针top=30(指向栈顶元【yuán】素)。则栈中的元【yuán】素个数【shù】为【wéi】

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

  68、某二【èr】叉树的前序【xù】序列为ABCDEFG,中【zhōng】序序列为DCBAEFG,则该【gāi】二叉树【shù】的深度【dù】(根结点在第1层)为

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

  69、下列叙述中正确的是

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

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

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

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

  70、下列叙述中正确的是

  A) 带链队列的存储空间可【kě】以不连续【xù】,但队头指针必须大于队【duì】尾【wěi】指针【zhēn】

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

  √C) 带链【liàn】队列的存储空【kōng】间可以【yǐ】不连续,且队头【tóu】指针【zhēn】可以大于也可以小于【yú】队尾指针【zhēn】

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

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

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

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

  73、下列叙述中正确的是

  A) 在【zài】链表中,如果每【měi】个结点有两个指针域,则【zé】该链表一【yī】定是非线性结【jié】构

  √B) 在链表中,如果有两个结点的同一【yī】个【gè】指【zhǐ】针域【yù】的值相等【děng】,则该链【liàn】表一定是非线【xiàn】性结构

  C) 在链【liàn】表中【zhōng】,如果每【měi】个结点有【yǒu】两个指针域,则该链表一定是线性【xìng】结构

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

  74、下列叙述中错误的是

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

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

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

  75、设数据元素的集合D={ 1,2,3,4,5 },则满足下【xià】列关系【xì】R的数据【jù】结构中为线性【xìng】结构的是

  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) 链表结点【diǎn】中具有【yǒu】两【liǎng】个指针域的数【shù】据结构可以是线性结构【gòu】,也可【kě】以是非线性【xìng】结构

  B) 线性【xìng】表的【de】链式存储结构中,每个结点必须【xū】有指【zhǐ】向前件和【hé】指向后【hòu】件的两个指【zhǐ】针

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

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

  77、一个栈的初始状态【tài】为【wéi】空,现将元素A,B,C,D,E依次入栈,然【rán】后依次退栈三次,并将退栈的三个元素【sù】依【yī】次入队【duì】(原队列【liè】为空),最后将队列【liè】中的元素【sù】全部退出【chū】。则元素退队的【de】顺序【xù】为

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

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

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

  79、下列叙述中正确的是

  A) 所谓【wèi】算法就是计【jì】算方法【fǎ】 √B) 程序可以作【zuò】为算法的一种描述方法

  C) 算法设计只需考虑【lǜ】得【dé】到【dào】计算【suàn】结【jié】果 D) 算法设计可以忽【hū】略算法【fǎ】的运算时间

  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) 循环队列【liè】是顺序【xù】存储结【jié】构 B) 循环队列是链式存储结构

  C) 循环队【duì】列是非线性结构 D) 循环队列的插入运算不会发生溢【yì】出【chū】现【xiàn】象【xiàng】

  83、下列叙述中正确的是

  A) 所有数据结【jié】构必须有根【gēn】结【jié】点 B) 所有数据结构【gòu】必须【xū】有【yǒu】终端结点(即叶子结点【diǎn】)

  C) 只有一个根结【jié】点【diǎn】,且只有一个【gè】叶子结点的数据结构一定【dìng】是【shì】线性结【jié】构

  √D) 没有根结点或【huò】没有叶【yè】子结点的数据【jù】结构【gòu】一定是非线性结【jié】构

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

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

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

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

  85、线【xiàn】性【xìng】表的链【liàn】式存储【chǔ】结构【gòu】与顺【shùn】序存储【chǔ】结构相比,链式存储结构的优点有

  A) 节省存储空间 √B) 插【chā】入与【yǔ】删【shān】除【chú】运算效率高C) 便【biàn】于【yú】查找 D) 排序时减少元素【sù】的比较【jiào】次数

  86、深度为7的【de】完全二【èr】叉树中,共【gòng】有125个结点,则该完【wán】全二叉树中的【de】叶子【zǐ】结点数为【wéi】

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

  87、下列叙述中正确的是

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

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

  √C) 有序表可以用链【liàn】接【jiē】存储方式存【cún】储在不连【lián】续的存储空间内

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

  88、下列叙述中正确的是

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

  √B) 结点【diǎn】中【zhōng】具有两个指针域【yù】的链表可【kě】以是线性结构,也可【kě】以是非线性【xìng】结【jié】构

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

  89、设【shè】某二叉树中,共有【yǒu】140个结点,其中有40个【gè】度为1的结点。则

  A) 该【gāi】二叉树中有51个叶子结【jié】点 B) 该二叉树中有50个叶【yè】子结【jié】点

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

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

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

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

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

  91、某二叉【chā】树的前序序【xù】列为ABCD,中序序列【liè】为DCBA,则【zé】后序序列为

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

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

  A) 最坏【huài】情况下【xià】的时间【jiān】复杂度一定【dìng】高于平均情况【kuàng】的时间复杂度【dù】

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

  C) 对同一【yī】个问题,采用不同【tóng】的算法,则它【tā】们【men】的时【shí】间复杂度是相同的

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

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

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

  94、下列叙述中正确的是

  A) 有【yǒu】两个指针域【yù】的链表称为二叉【chā】链表B) 循环链表是循环队【duì】列的【de】链式【shì】存【cún】储结构

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

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

  95、某二叉树共有845个结点【diǎn】,其中【zhōng】叶【yè】子结点有45个【gè】,则度为1的结点数【shù】为

  A) 400 B) 754 √C) 756 D) 不确定

  96、设数据【jù】集合【hé】为D={ 1,3,5,7,9 },D上的关系为R,下【xià】列数据【jù】结构B=(D,R)中【zhō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、深【shēn】度为7的【de】二叉树共有127个结点,则下【xià】列说法中错【cuò】误【wù】的是

  √A) 该二叉【chā】树【shù】有【yǒu】一个度为1的结点 B) 该二【èr】叉树是满二叉树

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

  98、下列叙述中正确的是

  A) 非【fēi】线性结【jié】构只能采用链【liàn】式存储【chǔ】结构【gòu】B) 非线性结构只能用多【duō】重链表表示

  C) 所有数据结构既可【kě】以采用顺序【xù】存储【chǔ】结构【gòu】,也【yě】可以采用链式存储结构

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

  99、某二叉树的中序序列为【wéi】BDCA,后序序列【liè】为DCBA,则【zé】前序序列为

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

  100、某完全二叉树共有【yǒu】256个结点,则【zé】该完【wán】全【quán】二叉树的深度为

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

栈中元素个数问题

这个问【wèn】题是这【zhè】样的,你【nǐ】在集【jí】合中读入一个元【yuán】素,就入栈,那【nà】么读完所有的集【jí】合元素【sù】之后,栈【zhàn】内的元素数目【mù】就【jiù】和原来集合【hé】中的相等。那么同时伴随出栈的【de】动作。当栈中元素都出去之后【hòu】,每次出栈+1,那么你就可【kě】以元素任何时候进栈【zhàn】任何【hé】时候也可【kě】以出栈,在出栈的时候【hòu】设一个【gè】int
s
,让其s++到集合的末端【duān】,并且【qiě】让所有栈【zhàn】内【nèi】的元素出栈【zhàn】,s就是所【suǒ】求

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

表示【shì】顺序栈的数组下【xià】标如果从【cóng】0开【kāi】始,栈空的条件是【shì】top==-1,栈满的条【tiáo】件是top==maxsize-1;如【rú】果从1开【kāi】始,top==1表示栈【zhàn】空,top==maxsize表【biǎo】示栈满。

栈的元【yuán】素依【yī】次存放在【zài】一个一维数组【zǔ】中。下标小的一端作为栈底。用一个变量【liàng】记录栈【zhàn】顶位置,称“栈【zhàn】顶指针”。

扩展资料:

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

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

而data[top-1]为【wéi】最后【hòu】入栈的元素,即为【wéi】栈顶元素。当top==MAXSIZE时,表示【shì】栈满,如果此时再有结点进栈【zhàn】,将发生【shēng】称之为“上【shàng】溢”(语法【fǎ】上表现为“数组越界”)的错【cuò】误,而当top==0时【shí】再执行出栈操作,将【jiāng】发生称之为“下溢”的错误。

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

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

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

(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

设栈的【de】存储【chǔ】空【kōng】间为S(1:m),初始状态为TOP=m+1。经过【guò】一系列入栈与退【tuì】栈操作后,TOP=m

m+1 。

这个栈是【shì】从【cóng】栈顶向【xiàng】栈底压【yā】的,一般平【píng】时【shí】是从栈底向栈顶压【yā】,这道题目中是倒过来的。

若【ruò】TOP≥n时,则给出溢出信息,作出错【cuò】处【chù】理(进栈前首先【xiān】检查栈是否【fǒu】已满,满则溢出);置TOP=TOP+1(栈指针加1,指向进栈地【dì】址);S(TOP)=X,结束(X为新进栈的元素)。



扩展资料:

若TOP≤0,则给出下溢信息,作【zuò】出错处理【lǐ】(退【tuì】栈前先检【jiǎn】查是否【fǒu】已【yǐ】为空栈, 空则下溢);X=S(TOP),(退【tuì】栈后的元素赋给X):TOP=TOP-1,结【jié】束(栈指【zhǐ】针减1,指向栈顶)。

定义stack的简单代码:

stackint sta;

入栈:sta.push(x);

出栈:sta.pop();

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

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

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