栈和队列自测题
数据结构栈和队列测验

《数据结构》栈和队列测试题一、填空题(12*1=12分)1.栈是操作受限的线性表,是固定的,插入和删除只能在进行;2.栈的工作原理:; 队列的工作原理:。
3.队列是操作受限的线性表:可以在插入,在进行删除;4.能够从任意一个结点出发直接访问到所有结点的是:链表;5.设有栈S和队列Q,初始状态均为空。
首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为:;6.循环队列判断队空的条件:队满的条件是:7.顺序队列判断队空的条件:顺序队列判断队满的条件:二.选择题(2*5=10分)1.下列数据结构中,属于非线性结构的是( )A.双向链表B.循环链表C.二叉链表D.循环队列2.下列与栈结构有关联的是( )A.数组的定义与使用B.操作系统的进程调度C.函数的递归调用D.选择结构的执行3.下列关于算法复杂度叙述正确的是( )A.最坏情况下的时间复杂度一定高于平均情况的时间复杂度B.时间复杂度与所用的计算工具无关C.时间复杂度与采用的算法描述语言有关D.对同一问题,采用不同的算法,则它们的时间复杂度是相同的4.下列叙述正确的是( )A.有两个指针域的链表称为二叉链表;B.循环链表是循环队列的链式存储结构;C.带链的栈有栈顶指针和栈底指针,因此又称为双重链表D.节点中具有多个指针域的链表称为多重链表5.下列叙述中正确的是( )A.节点中具有两个指针域的链表一定是二叉链表B.节点中具有两个指针域的链表可以是线性结构,也可以是非线性结构C.二叉树只能采用链式存储结构D.循环链表是非线性结构三、程序填空:(10*2=20分)1.已知顺序栈定义如下,请将元素d入栈的代码补充完整/*定义栈的数据类型*/typedef struct{int *base;//栈底指针int *top;//栈顶指针int stack_size;//栈的大小}SqStack;/*功能:将元素d入栈返回值:1:成功0:失败*/int push( ,int d){//判断栈是否已满,如果满,入栈失败if( >=s->stack_size) {printf("栈已满,入栈失败!\n");return 0;}//把d放入top指针所指的位置*( )=d;//top指针上移(++);return ;}2.已知顺序队列定义如下,请将下列代码补充完整:typedef struct{int queue[MAX_QUEUE_SIZE];int front;//队头int rear;//队尾}SqQueue;/*功能:出队(把队首元素删除)参数:sq指向一个顺序队列,d:保存删除元素返回值:1:成功0:失败*/int deQueue(SqQueue *sq,int *d){//如果sq为NULL,输出“队列未创建,出队失败!”,返回0if( ) {printf("队列未创建,出队失败!\n");;}//如果队列为空(没有元素),输出“队列为空,出队失败!”,返回0if(sq->front sq->rear){printf("队列为空,出队失败!\n");return 0;}*d= ; //否则,把front所指的元素放到d里sq->front= ; //front+1//返回1return 1;}参考答案:一.填空题1. 栈底栈顶2.先进后出FILO (后进先出) 先进先出(FIFO)3.队尾队首(队头)4. 循环链表5.FEDZYXCBA6.队首指针==队尾指针(rear==front)(rear+1)%MAX_QUEUE_SIZE==front7. 队首指针==队尾指针(rear==front)rear>MAX_QUEUE_SIZE-1二.选择题CCBBB三.填空题1. SqStack *s s->top s->top (s->top)++ 12.sq==NULL return 0; == sq->queue[sq->front] sq->front+1。
数据结构第三章堆栈和队列测试题及答案

堆栈和队列测试题一、选择题1. 对于栈操作数据的原则是(B)。
A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2. 在做进栈运算时,应先判别栈是否( B),在做退栈运算时应先判别栈是否( A)。
当栈中元素为n个,做进栈运算时发生上溢,则说明该栈的最大容量为( B )。
为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的( D )分别设在这片内存空间的两端。
①, ②: A. 空 B. 满 C. 上溢 D. 下溢③: A. n-1 B. n C. n+1 D.n/2④: A. 长度 B. 深度 C. 栈顶 D. 栈底3. 一个栈的输入序列依次为1,2,3,…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是(B)。
A. 不确定B. n-i+1C. iD. n-i4. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是( D )。
A. i-j-1B. i-jC. j-i+1D. 不确定的5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,p N,若p N是n,则pi是( D )。
A. iB. n-iC. n-i+1D. 不确定6.有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( C )A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 67. 设栈的输入序列是1,2,3,4,则( D )不可能是其出栈序列。
A. 1,2,4,3,B. 2,1,3,4,C. 1,4,3,2,D. 4,3,1,2,E. 3,2,1,4,8. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。
A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 5 4 3 29. 设一个栈的输入序列是1,2,3,4,5,则下列序列中,是栈的合法输出序列的是(D)。
栈、队列练习题(答案)

栈、队列练习题(答案)栈、队列练习题一、选择题1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.若让元素1、2、3、4依次入栈,则出栈次序不可能出现()A.3 2 1 4 B.2 1 4 3 C.1 4 2 3 D.4 3 2 13.栈的插入和删除操作在( )进行。
A. 栈顶B. 栈底C. 任意位置D. 指定位置4.用单链表表示的链式队列的队头在链表的()位置。
A. 链头B. 链尾C. 链中D. 以上都不是5.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是()。
A. p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B. s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C. p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D. s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;6.设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列( )。
A.A, B, C, D, E B.B, C, D, E, AC.E, A, B, C, D D.E, D, C, B, A7.在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( )。
A.top不变B.top=0 C.top-- D.top++8.向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( )。
数据结构栈和队列习题及答案

习题三栈和队列一单项选择题1. 在作进栈运算时,应先判别栈是否(① ),在作退栈运算时应先判别栈是否(② )。
当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(③ )。
①, ②: A. 空 B. 满 C. 上溢 D. 下溢③: A. n-1 B. n C. n+1 D. n/22.若已知一个栈的进栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,...,pn,若p1=3,则p2为( )。
A 可能是2B 一定是2C 可能是1D 一定是13. 有六个元素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 64.设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4, s6, s5,s1,则栈的容量至少应该是()A.2B. 3C. 5D.65. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。
A. |top[2]-top[1]|=0B. top[1]+1=top[2]C. top[1]+top[2]=mD. top[1]=top[2]6. 执行完下列语句段后,i值为:()int f(int x){ return ((x>0) ? x* f(x-1):2);}int i ;i =f(f(1));A.2 B. 4 C. 8 D. 无限递归7. 表达式3* 2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(),其中^为乘幂。
A. 3,2,4,1,1;(*^(+*-B. 3,2,8;(*^-C. 3,2,4,2,2;(*^(-D. 3,2,8;(*^(-8. 用链接方式存储的队列,在进行删除运算时()。
第三章栈和队列练习题

第三章栈和队列练习题一、单项选择题1.一个顺序栈一旦被声明,其占用空间的大小()。
A.已固定B.可以改变C.不能固定D.动态变化2.链栈和顺序栈相比,有一个比较明显的缺点,即()。
A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便3.用单链表表示的链式队列的队头在链表的()位置。
A.链头B.链尾C.链中D.任意位置4.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个()结构。
A.堆栈B.队列C.数组D.先性表5.若已知一个栈的入栈序列是1,2,3,…,30,其输出序列是p1,p2,p3,…p n,若p1=30,则p10为()。
A.11 B.20 C.19 D.216.循环队列A[m] 存放其元素,用front和rear分别表示队头及队尾,则循环队列满的条件是()。
A.(rear+1)%m=front B.rear =front+1C.rear=front D.(rear+1)%m-1=front7.在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。
A.top->next=p; B.p->next=top->next; top->next=p;C.p->next=top; top=p; D.p->next=top->next; top=top->next;8.在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点的值,则执行()。
A.x=top;top=top->next; B.x=top->data;C.top=top->next; x=top->data; D.x=top->data; top=top->next;9.表达式a*(b+c)-d的后缀表达式是()。
栈和队列练习1

第三章栈和队列一、选择题部分1. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是(C)。
(A) edcba(B)decba(C)dceab (D)abcde2.栈结构通常采用的两种存储结构是(A)。
(A)线性存储结构和链表存储结构(B)散列方式和索引方式(C)链表存储结构和数组(D)线性存储结构和非线性存储结构3.判定一个顺序栈ST(最多元素为m0)为空的条件是( B)。
(A) ST-〉top!=0 (B)ST-〉top==0(C)ST-〉top!=m0 (D)ST-〉top=m04.判定一个栈ST(最多元素为m0)为栈满的条件是( C)。
(A)ST-〉top!=0 (B)ST-〉top==0(C)ST-〉top==m0(D)ST-〉top==m0-15.一个队列的入列序列是1,2,3,4,则队列的输出序列是( B)。
(A)4,3,2,1(B)1,2,3,4(C)1,4,3,2(D)3,2,4,16.循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear 则当前队列中的元素个数是(B )(A)(rear-front+m)%m (B) rear-front+1 (C)rear-front-1(D)rear-front7.栈和队列的共同点是(C )(A)都是先进后出(B)都是先进先出(C)只允许在端点处插入和删除元素(D)没有共同点8.表达式a*(b+c)-d的后缀表达式是(B)。
(A)abcd*+-(B)abc+*d- (C)abc*+d-(D)-+*abcd9.4个元素a1,a2,a3和a4依次通过一个栈,在a4进栈前,栈的状态,则不可能的出栈序是(C)(A)a4,a3,a2,a1 (B)a3,a2,a4,a1(C)a3,a1,a4,a2 (D)a3,a4,a2,a110.以数组Q[0..m-1]存放循环队列中的元素,变量rear和qulen分别指示循环队列中队尾元素的实际位置和当前队列中元素的个数,队列第一个元素的实际位置是( D )(A)rear-qulen (B)rear-qulen+m(C)m-qulen (D)(1+rear+m-qulen)% m二、填空题部分1.栈的特点是(先进后出),队列的特点是(先进先出)。
数据结构:栈和队列期末单元测试与答案

一、单选题1、经过以下栈运算后,x的值是()。
InitStack(s); Push(s,a); Push(s,b); Pop(s,x); GetTop(s,x);A.bB.0C.1D.a正确答案:D2、若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。
A.2,3,5,4,1B.5,4,3,2,1C.2,1,5,4,3D.4,3,1,2,5正确答案:D3、若链栈采用无头结点的单链表存储,top指向栈顶。
若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。
A.x=top->data;top=top->next;B.top=top->link;x=top-> next;C.x=top-> next;D.x=top;top=top-> next;正确答案:A4、数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。
A.n+r-fB.n+r-f)%nC.r-fD.(n+f-r)%n正确答案:B5、设有一个递归算法如下int fact(int n) { //n大于等于0if(n<=0)return 1;elsereturn n*fact(n-1);}则计算fact(n)需要调用该函数的次数为()。
A.n+2B.nC.n-1D.n+1正确答案:D6、栈在()中有所应用。
A.表达式求值B.递归调用C.其他三个选项D.函数调用正确答案:C7、为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。
主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是()。
A.线性表B.有序表C.栈D.队列正确答案:D8、设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是()。
数据结构第三章栈和队列练习及答案

一、选择题一、选择题1、栈中存取数据的原则()、栈中存取数据的原则()A 、先进先出B 、先进后出C 、后进后出D 、随意进出、随意进出2、队列中存取数据的原则()、队列中存取数据的原则() A 、先进先出 B 、后进先出 C 、先进后出 D 、随意进出、随意进出3、插入和删除只能在一端进行的线性表,称为()、插入和删除只能在一端进行的线性表,称为()A 、队列B 、循环队列C 、栈D 、循环栈、循环栈4、在栈中,出栈操作的时间复杂度为()、在栈中,出栈操作的时间复杂度为()A 、O (1)B 、O (log 2n )C 、O (n )D 、O (n 2)5、设长度为n 的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为()() A 、O (1) B 、O (log 2n ) C 、O (n ) D 、O (n 2)6、设长度为n 的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为()() A 、O (1) B 、O (log 2n ) C 、O (n ) D 、O (n 2)7、一个线性表的第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是()是() A 、110 B 、108 C 、100 D 、1208、一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是(),则栈的不可能的输出序列是()A 、edcbaB 、decbaC 、dceabD 、abcde9、若已知一个栈的入栈序列是1,2,3,……,n ,其输出序列是p1,p2,p3,……,pn ,若p1=n ,则pi 为()为()A 、iB 、n=iC 、n-i+1D 、不确定、不确定10、判断一个栈ST (最多元素m0)为空的条件是())为空的条件是()A 、ST->top==0B 、ST->top==-1C 、ST->top!=m0D 、ST->top==m0 11、判断一个栈ST (最多元素m0)为满的条件是())为满的条件是()A 、ST->top!=0B 、ST->top==0C 、ST->top!=m0D 、ST->top==m0 12、判断一个循环队列QU (最多元素为m0)为空的条件是())为空的条件是() A 、QU.front==QU.rear B 、QU.front!=QU.rearC 、QU.front==(QU.rear+1)%m0D 、QU.front!=(QU.rear+1)%m013、判断一个循环队列QU (最多元素为m0)为满的条件是())为满的条件是()A 、QU.front==QU.rearB 、QU.front!=QU.rearC 、QU.front==(QU.rear+1)%m0D 、QU.front!=(QU.rear+1)%m0 14、循环队列用数组存放其元素值A[0,m-1],已知其头尾指针分别是rear 和front ,则当前队列的元素个数是()队列的元素个数是()A 、(rear-front+m)%mB 、rear-front+1C 、rear-front-1D 、rear-front 15、栈和队列的共同特点是()、栈和队列的共同特点是()A 、都是先进后出B 、都是先进先出、都是先进先出C 、只允许在端点处插入和删除D 、没有共同点、没有共同点二、填空题二、填空题1、设长度为n 的链队列用单循环链表表示,若只设头指针,则入队和出队操作的时间复杂度分别为(O(N))和(O(1));若又设尾指针,则入队和出队操作的时间复杂度分别为(O(1))和(O(1))。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章栈和队列自测卷
一、填空题
1. 向量(线性表)、栈和队列都是结构,可以在向量的位置插入和删除元素;对于栈只能
在插入和删除元素;对于队列只能在插入和删除元素。
2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为。
不允许插入和删除运算的一端称
为。
3. 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。
4. 在一个循环队列中,队首指针指向队首元素的位置。
5. 在具有n个单元的循环队列中,队满时共有个元素。
6. 向栈中压入元素的操作是先,后。
7. 从循环队列中删除一个元素时,其操作是先,后。
8. 带表头结点的空循环双向链表的长度等于。
二、判断正误(判断下列概念的正确性,并作出简要的说明。
)(每小题1分,共10分)()1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
()2. 在表结构中最常用的是线性表,栈和队列不太常用。
()3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
()4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
()5. 栈和链表是两种不同的数据结构。
()6. 栈和队列是一种非线性数据结构。
()7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。
()8. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
()9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
()10. 一个栈的输入序列是12345,则栈的输出序列不可能是12345。
三、单项选择题(每小题1分,共20分)
()1. 栈中元素的进出原则是
A.先进先出B.后进先出C.栈空则进D.栈满则出
()2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为
A.i B.n=i C.n-i+1 D.不确定
()3. 判定一个栈ST(最多元素为m0)为空的条件是
A.ST->top<>0 B.ST->top=0 C.ST->top<>m0 D.ST->top=m0
()4. 判定一个队列QU(最多元素为m0)为满队列的条件是
A.QU->rear -QU->front = = m0 B.QU->rear -QU->front -1= = m0
C.QU->front = = QU->rear D.QU->front = = QU->rear+1
()5.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为
(A)r-f; (B)(n+f-r)% n; (C)n+r-f; (D)(n+r-f)% n
6. 设有4个数据元素a1、a2、a3和a4,对他们分别进行栈操作或队操作。
在进栈或进队操作时,按a1、a2、a3、a4次序每次进入一个元素。
假设栈或队的初始状态都是空。
现要进行的栈操作是进栈两次,出栈一次,再进栈两次,出栈一次;这时,第一次出栈得到的元素是A ,第二次出栈得到的元素是 B ;类似地,考虑对这四个数据元素进行的队操作是进队两次,出队一次,再进队两次,出队一次;这时,第一次出队得到的元素是 C ,第二次出队得到的元素。
经操作后,最后在栈中或队中的元素还有 E 个。
A~D:①a1 ②a2 ③a3 ④a4 E:①1 ②2 ③3 ④0
答:A、B、C、D、E分别为、、、、
7. 栈是一种线性表,它的特点是 A 。
设用一维数组A[1,…,n]来表示一个栈,A[n]为栈底,用整型变量T指示当前栈顶位置,A[T]为栈顶元素。
往栈中推入(PUSH)一个新元素时,变量T的值 B ;从栈中弹出(POP)一个元素时,变量T的值 C 。
设栈空时,有输入序列a,b,c,经过PUSH,POP,操作后,从栈中弹出的元素的序列是 D ,变量T的值是 E 。
A:①先进先出②后进先出③进优于出④出优于进⑤随机进出
B,C:①加1 ②减1 ③不变④清0 ⑤加2 ⑥减2
D:①a,b ②b,c ③c,a ④b,a ⑤c,b ⑥a,c
E:①n+1 ②n+2 ③n ④n-1 ⑤n-2
答:A、B、C、D、E分别为、、、、
8. 在做进栈运算时,应先判别栈是否 A ;在做退栈运算时,应先判别栈是否 B 。
当栈中元素为n个,做进栈运算时发生上溢,则说明该栈的最大容量为 C 。
为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的分别设在这片内存空间的两端,这样,只有当 E 时,才产生上溢。
A,B:①空②满③上溢④下溢
C:①n-1 ②n ③n+1 ④n/2
D:①长度②深度③栈顶④栈底
E:①两个栈的栈顶同时到达栈空间的中心点②其中一个栈的栈顶到达栈空间的中心点
③两个栈的栈顶在达栈空间的某一位置相遇④两个栈均不空,且一个栈的栈顶到达另一个栈的栈底答:A、B、C、D、E分别为、、、、
四、简答题(每小题4分,共20分)
1. 说明线性表、栈与队的异同点。
2. 设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆列车开出车站的所有可能的顺序。
3. 假设正读和反读都相同的字符序列为“回文”,例如,‘abba ’和‘abcba ’是回文,‘abcde ’ 和‘ababab ’则不是回文。
假设一字符序列已存入计算机,请分析用线性表、堆栈和队列等方式正确输出其回文的可能性?
4. 顺序队的“假溢出”是怎样产生的?如何知道循环队列是空还是满?
5. 设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有
① front=11,rear=19; ② front=19,rear=11;问在这两种情况下,循环队列中各有元素多少个?
五、程序题
1. 写出下列程序段的输出结果(栈的元素类型SElem Type 为char )。
void main( ){ Stack S; Char x,y; InitStack(S); X=’c’;y=’k’; Push(S,x); Push(S,’a’); Push(S,y);
2. 写出下列程序段的输出结果(队列中的元素类型QElem Type 为char )。
void main( ){
Queue Q; Init Queue (Q);
Char x=’e’; y=’c’;
EnQ ueue (Q,’h’); En Q ueue (Q,’r’); En Q ueue (Q,’y’);
DeQueue (Q,x); EnQueue (Q,x);
DeQueue (Q,x); EnQ ueue (Q,’a’);
Pop(S,x); Pu sh(S,’t’); Push(S,x); Pop(S,x); Push(S,’s’); while(!StackEmpty(S)){ Pop(S,y);printf(y); }; Printf(x); }
while(!QueueEmpty(Q)){ DeQueue (Q,y);printf(y); }; Printf(x);
}。