欢迎来到天天文库
浏览记录
ID:38977125
大小:56.50 KB
页数:7页
时间:2019-06-22
《3、堆栈及队列部分》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题:一、单选题1.栈和队列的共同点是()。A.都是先进后出B.都是先进现出C.只允许在端点出操作D.无共同点2.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是()。A.edcbaB.decbaC.dceabD.abcde3.设一数列a,b,c,d,e,f,通过栈结构不可能排成的顺序数列为()。A.c,b,e,f,d,aB.a,e,d,f,b,cC.b,d,c,e,a,fD.d,e,c,f,b,a4.已知一个栈的入栈序列是1,2,3,....,n,其输出序列为p1,p2,p3,…pn,若p1是n,则pi是()。A.iB.n-iC.n-i+1D.
2、不确定5.栈结构通常采用的两种存储结构是()。A.线性存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构6.判定一个栈ST(最多元素为m0)为空的条件是()。A.ST->TOP<0B.ST->TOP=0C.ST->TOP<>m0D.ST-TOP!=0B.ST->TOP==0C.ST->TOP!=m0D.ST-3、,3,2,1C.1,3,2,4D.3,1,2,49.堆栈操作的原则是()A.先进先出B.后进先出C.只能进行插入D.只能进行删除10.向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行()。A.HS->next=s;B.s->next=HS->next;HS->next=s;C.s->next=HS;HS=s;D.s->next=HS;HS=HS->next;11.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行()。A.x=HS;HS=HS->next;B.x=HS->data;C.HS=HS->next;x=Hs->data;4、D.x=HS->data;HS=HS->next;12.一个队列的入队序列是1,2,3,4,则序列的输出序列是()。A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,113.队列操作的原则是()。A.先进先出B.后进先出C.只能进行插入D.只能进行删除14.判定一个队列QU(最多元素为m0)为空的条件是()。A.QU->rear-QU->front==m0B.QU->rear-QU->front-1==m0C.QU->rear==QU->frontD.QU->rear+1==QU->front15.判定一个队列QU(最多元素为m0)为满的条5、件是()。A.QU->rear-QU->front==m0B.QU->rear-QU->front-1==m0C.QU->rear==QU->frontD.QU->rear+1==QU->front16.设循环队列Q[N]的头尾指针为F、R,头指针F总是指在队列中的第一个元素的前一位置,则队列中元素计数为()。A.R-FB.N-(R-F)C.(R-F+N)%ND.(F-R+N)%N17.设循环队列Q[N]的头尾指针为F、R,头指针F总是指在队列中的第一个元素的前一位置,则判断队列为空的条件是()。A.R==FB.R!=FC.F==(R+1)%ND.F!=(R+6、1)%N18.设数组data[m+1]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句是()。A.front=front+1B.front=(front+1)%mC.rear=(rear+1)%mD.front=(front+1)%(m+1)19.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是()。A.f->next=s;f=s;B.r->next=s;r=s;C.s->next=r;r=s;D.s->next=f;f=s;21.在一个链队中,假设f和r分别为队首和队尾指针,则删除一个结点的运算7、是()。A.r=f->next;B.r=r->next;C.f=f->next;D.f=r->next;二、填空题1、栈的特点是,队列的特点是。2、一个栈的输入序列是12345,则栈的输出序列43512是。3、一个栈的输入序列是12345,则栈的输出序列12345是。4、假设sq[maxsize]为一个顺序存储的栈,变量top指示栈顶元素的位置。则入栈操作为;出栈操作为。5、已知顺序栈s存在,现将栈顶元素出栈,并返回栈顶元素:seqstackpush(seqstacks){if(EMPTY(s)){printf(“underflow”);returnNULL;8、}else{;return;}}6、顺
3、,3,2,1C.1,3,2,4D.3,1,2,49.堆栈操作的原则是()A.先进先出B.后进先出C.只能进行插入D.只能进行删除10.向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行()。A.HS->next=s;B.s->next=HS->next;HS->next=s;C.s->next=HS;HS=s;D.s->next=HS;HS=HS->next;11.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行()。A.x=HS;HS=HS->next;B.x=HS->data;C.HS=HS->next;x=Hs->data;
4、D.x=HS->data;HS=HS->next;12.一个队列的入队序列是1,2,3,4,则序列的输出序列是()。A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,113.队列操作的原则是()。A.先进先出B.后进先出C.只能进行插入D.只能进行删除14.判定一个队列QU(最多元素为m0)为空的条件是()。A.QU->rear-QU->front==m0B.QU->rear-QU->front-1==m0C.QU->rear==QU->frontD.QU->rear+1==QU->front15.判定一个队列QU(最多元素为m0)为满的条
5、件是()。A.QU->rear-QU->front==m0B.QU->rear-QU->front-1==m0C.QU->rear==QU->frontD.QU->rear+1==QU->front16.设循环队列Q[N]的头尾指针为F、R,头指针F总是指在队列中的第一个元素的前一位置,则队列中元素计数为()。A.R-FB.N-(R-F)C.(R-F+N)%ND.(F-R+N)%N17.设循环队列Q[N]的头尾指针为F、R,头指针F总是指在队列中的第一个元素的前一位置,则判断队列为空的条件是()。A.R==FB.R!=FC.F==(R+1)%ND.F!=(R+
6、1)%N18.设数组data[m+1]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句是()。A.front=front+1B.front=(front+1)%mC.rear=(rear+1)%mD.front=(front+1)%(m+1)19.在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是()。A.f->next=s;f=s;B.r->next=s;r=s;C.s->next=r;r=s;D.s->next=f;f=s;21.在一个链队中,假设f和r分别为队首和队尾指针,则删除一个结点的运算
7、是()。A.r=f->next;B.r=r->next;C.f=f->next;D.f=r->next;二、填空题1、栈的特点是,队列的特点是。2、一个栈的输入序列是12345,则栈的输出序列43512是。3、一个栈的输入序列是12345,则栈的输出序列12345是。4、假设sq[maxsize]为一个顺序存储的栈,变量top指示栈顶元素的位置。则入栈操作为;出栈操作为。5、已知顺序栈s存在,现将栈顶元素出栈,并返回栈顶元素:seqstackpush(seqstacks){if(EMPTY(s)){printf(“underflow”);returnNULL;
8、}else{;return;}}6、顺
此文档下载收益归作者所有