笔果题库
数据结构
VIP题库
搜题找答案,就上笔果题库
利用栈的基本操作,写一个将栈S中所有结点均删去的算法:voidC1earStack(SeqStack*S),并说明S为何要作为指针参数。
搜题找答案,就上笔果题库
假设一个顺序栈存放在S.data[max]中,max-1是其栈底,则判断栈满的条件是______,判断栈空的条件是______。
搜题找答案,就上笔果题库
设计一个判别表达式中左右括号是否配对出现的算法,采用()数据结构最好。
搜题找答案,就上笔果题库
假设循环队列中只设rear和quelen来分别指示队尾元素的位置和队中元素的个数,试给出判别此循环队列的队满条件,并写出相应的人队和出队算法,要求出队时需返回队头元素。
搜题找答案,就上笔果题库
对一个序列按照O,P,Q的顺序人队,那么其出队的顺序为_____。
搜题找答案,就上笔果题库
假设Q是一个具有11个元素存储空间的循环队列(队尾指针指向队尾元素的下一个位置,队头指针指向队头元素),初始状态Q.front=Q.rear=O;写出依次执行下列操作后头、尾指针的当前值。a,b,c,d,e,f入队,a,b,c,d出队;(1)Q.front=______;Q.rear=_______。g,h,i,j,k,1人队,e,f,g,h出队;(2)Q.front=______;Q.rear=______。M,n,o,P入队,i,j,k,1,m出队;(3)Q.front=_______;Q.rear=_______。
搜题找答案,就上笔果题库
阅读下列算法,回答问题。 voidex(SeqStack*S) { intA[80],i,n; n=0; while(!empty(S)){ A[n]=pop(S); n++; } for(i=O;i<n;i++) push(S,A[i]); } (1)当S=(a,b,c,d)时,执行上述程序后其为什么? (2)简述该算法的功能。
搜题找答案,就上笔果题库
阅读下列算法(假设栈的操作函数都已定义),并回答问题: voidf31() {SeqStackS; charx,y; x='c'; y='k'; Push(&S,x); Push(&S,'a'); Push(&S,y); x=Pop(&S); Push(&S,'t'); Push(&S,x); x=Pop(&S); Push(&S,'s'); while(!StackEmpty(&S)) {y=Pop(&S); putchar(Y); } putchar(x); } (1)自底向上写出执行while语句之前栈S中的元素序列。 (2)写出该函数的最后输出结果。
搜题找答案,就上笔果题库
按数字1,2,3,4顺序入栈,则出栈的序列不可能是()
搜题找答案,就上笔果题库
栈和队列都是_____结构;对于栈,只能在_____插入和删除元素;对于队列,只能在_____插入元素,在_____删除元素。