还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
单元练习;一.判断题下列各题,正确的请在前面的括号内打错误的打栈V X J是运算受限制的线性表在栈空的情况下,不能作出栈操作,否则产生下溢出V2栈一定是顺序存储的线性结构X3栈的特点是“后进先出”J空栈就是所有元素都为的栈X50⑹在或者语言中设顺序栈的长度为则时X CC++MAXLEN,top=MAXLEN表示队满链栈与顺序栈相比,其特点之一是通常不会浮现栈满的情况V7一个栈的输入序列为可以得到输出序列XJA,B,C,D,C,A,B,Do递归定义就是循环定义X将十进制数转换为二进制数是栈的典型应用之一7二.填空题对、栈结构中,允许插入、删除的一端称为栈顶在顺序栈中,当栈顶指针时,表示栈空top在有个元素的栈中,进栈操作的时间复杂度为一O在栈中,出栈操作的时间复杂度为---------------已知表达式,求它的后缀表达式是栈的典型应用在一个链栈中,若栈顶指针等于,则表示栈空向一个栈顶指针为的链栈插入一个新结点时,应执行;top Pp-next=top;和操作top=p顺序栈存储在数组中,进栈操作时要执行的语句有或者top top+1o链栈,指向栈顶元素的指针是从一个栈删除元素时,首先取出栈顶元素,然后再挪移栈顶指针10由于链栈的操作只在链表的头部进行,所以没有必要设置头11点幺吉0已知顺序栈在对进行进栈操作之前首先要判断栈是否02°S,S满o已知顺序栈在对进行出栈操作之前首先要判断栈是否L13S,S•链栈的存储结构和栈顶指针定义如下,二进试写出把十进数转换为制数的程序定义栈的存定义栈顶的指储结构针解栈的应用二一十进制转换置栈取余数取新的商申请新结占
八、、指针余数入栈转换后的二进制数值为:转换后的二进制数值为出栈处理出栈一个余数,收回一个结-L-O若内存空间充足,链栈可以不定义栈满运算14链栈是空的条件是o链栈的栈顶元素是链表的首元素同一栈的各元素的类型相同、若进栈的次序是A、、、执行三次出栈操作以后,栈18B CD E,顶元素为Bo的后缀表达式是19A+B/C-D*E ABC/+DE*-四个元素按、、、顺序进栈,执行两次,运算后,的值是o三.选择题插入和删除只能在一端进行的线性表,称为.队列.循环队列.栈.循环栈设有编号为,,,的四辆列车,顺序进入一个栈结构的站台,下列不可能的出站顺序为女口果以链表作为.栈的存储结构,则出栈操作时.必须判别栈是否满.必须判别栈是否空.队栈可不做任何判别元素挨次进栈以后,栈顶元素是.必须判别栈元素类型顺序栈存储空间的实现使用存储栈元素.链表.数组.循环链表.变量在或者语言中,一个顺序栈一旦被声明,其占用空间的大小O.已固定.不固定.可以改变.动态变化带头结点的链栈的示意图如下,栈顶元素是链栈与顺序栈相比,有一个比较明显的优点是.插入操作更加方便.通常不会浮现栈满的情况.不会浮现栈空的情况.删除操作根加方便()从一个栈顶指针为的链栈中删除一个结点时,用保存被删除的结点,应执行下列命令()在一个栈顶指针为入栈,的链栈中,将一个指针所指的结点命令应执行下列()四个元素按、、、顺序进栈,执行两次(,)运算后,栈顶元素的值是()o()元素挨.进栈以后,栈焉元素是()O()经过下列栈的运算后,再执行.的值是(.)(初始化栈)()经过下列栈的运算后,的值是(.)
0.(初始化栈)()经过下列栈的运算后,的值是()0(初始化栈)()经过下列栈的运算后,.的值是().(初始化栈)()向顺序栈中压入元素时,()O.先存入元素,后挪移栈顶指针.先挪移栈顶指针,后存入元素.谁先谁后无关紧要()初始化一个空间大小为的顺序栈后,的值是()o.再也不改变.动态变化)一个栈的入栈次序,则栈的不可能的输出序列是7()设有一个顺序栈元素个元素出栈的顺序是,,,挨次进栈如果六则栈的容量至少应是四.设有一个栈,元素进栈的次序为,,,,,用表示进栈操作,表示出栈操作,写出下列出栈的操作序列(),,,,(),,,,解()()五.求后缀表达式()()()()六.算法设计题.设用一维数组表示一个堆栈,若堆栈中每一个元素需占用个数组单元(),()试写出其入栈操作的算法()试写出其出栈操作的算法.设计一个算法,要求判别一个算术表达式中的圆括号配对是否正确解用一整型变量表示栈顶指针,为时表示栈为空栈中元素从
1.top top0开始存放元素S
[1]入栈算法1void pushchar xiftop+MMAXLEN-1堆栈溢出!”;printfelseif top==0top++;S[top]=x;elsetop=top+M;S[top]=x;出栈算法:2void popchar xiftop==0堆栈为空栈!”;printfelseif top==1X=[top];top--;elseX=[top];top=top-M;解设表达式在字符数组口中,使用一堆栈来匡助判断
2.a Sintcorrect chara[]stack s;I nitStacks;//调用初始化栈函数for i=0;i strlena;i++if a[i]==Push s,;else ifa[i]==if StackEmptys//调用判栈空函数return0;;//若栈为空返回否则出0栈elsePops;if StackEmptys//调用判栈空函数“配对正printf//若栈空,说明配对正确,确!”;并返回1else配对错误!”;//配对错误返回printf0摹拟考题求后缀表达式.求下列表达式的后缀表达式A解ABC A/DE*+AC*.求下列表达式的后缀表达式解AB/C DE*+F写出运行下列程序段的输出结果初始化答:程序填空下列程序是判别一个算术表达式(存在字符数组中)的圆括号配对是否正确?试填空完成下列程序初始化栈若栈为空返回;否则出栈配对正确!配对正确!配对错误!配对错误!。