一个栈的输入序列为1 2 3 4 5 的出站顺序的理解

一个栈的输入序列为1 2 3 4 5 的出站顺序是什么?这个经常会在面试的时候出现。

如何判断栈的进出问题一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( )A. 2 3 4 1
解答:

一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( )
A.2 3 4 1 5 B.5 4 1 3 2C.2 3 1 4 5 D.1 5 4 3 2
这题就选B
这样的题做多了就找出规律了
先进1和2,2出栈进入3,3出栈,进入4,4出栈,1在出栈,5进,5出栈,所以是23415,A对
进1和2,2出栈进入3,3出栈,进入4,在进入5,5出,4在出,就是23145,C对
1进,1出,2345进,然后5432出,就是15432,D对
B是错误,因为5要想出来,就必须五个数都要进栈,那么出来就一种结果是54321,答案是54132所以不对
这种题找规律,就能做出来

我们都知道栈是先进后出的,可以理解为桶状结构,

对于上面那种不可能的情况可按下图理解:
在这里插入图片描述

5最先出来说明其他的四个都没有出来,那么这四个的顺序就必须安照进来的先后顺序依次排列,这就要符合先进后出的原理,出来只有一个通道,下面的数字必须在后面才能出来。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验二 一、实验目的 1、掌握的结构特性及其入栈出栈操作; 2、对相应算法的时间复杂度进行分析; 3、理解数据结构的特点(优缺点); 4、掌握的概念。 二、实验环境 windowsXP microsoft visual studio 三 、实验内容 利用实现数据的分类,要求当输入为偶数时进输入为奇数时进2,最后分别 从1和2输偶数和奇数序列是限定插入和删除只能在表的"端点"进行的线性表。 的定义和特点: 定义:限定仅在表尾进行插入或删除操作的线性表,表尾—顶,表头—底,不含元素 的空表称空。 特点:先进后(FILO)或后进先(LIFO) 1、顺序顺序存储结构是利用一组地址连续的存储单元依次存放自底至顶的 数据元素,即同时附设指针top指示顶元素在顺序中的位置。类似于线性表的顺序映 象实现,指向表尾的指针可以作为顶指针。 //----- 顺序存储表示 ----- #define STACK_INIT_SIZE 100; #define STACKINCREMENT 10; typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; 底指针base,始终指向底位置;顶指针top,其初值指向底,始终在顶元素的下 一个位置。 2、链的链式存储结构是利用一个结点指针来实现的,结点由两部分组成,一部分 是结点的数据域,另一部分是指针域,用next指针指示结点的后继,从而实现链式存储 。的链式存储结构。顶指针就是链表的头指针。 3、入栈函数程序如下: int Push(SqStack *S,ElemType e){ if(S->top-S->base>=S->stacksize){ S->base=(ElemType *)realloc(S->base,(S->stacksize+STACKINCREMENT) *sizeof(ElemType)); if(!S->base) return ERROR; S->top=S->base+S->stacksize; S->stacksize+=STACKINCREMENT;} *S->top++=e; return OK; }/*Push*/ 4、出栈函数程序如下: int Pop(SqStack *S,ElemType *e){ if(S->top==S->base)return ERROR; *e=*--S->top; return OK; }/*Pop*/ 三、实验运行结果如下 四、算法分析:输入元素序列1 2 3 4 5,为什么输序列为5 4 3 2 1?体现了的什么特性? 答:1、push函数算法分析:它是一个元素入栈函数,首先判断是否已满,若已满, 就申请空间,当输入一个数据时,顶指针top加一,始终指向顶元素的上面,当1 2 3 4 5入栈后,指针top指在5的上面空格里,此时push函数已执行结束。 2、pop函数算法分析:它是一个元素出栈的函数,首先判断是否已空,若不为 空,就执行程序中顶元素出栈的语句。每次顶元素出栈时,顶指针top先自减一, 然后把所指元素输,即执行语句{e=--S->top}。此时,输序列为5 4 3 2 1。这体现了的先进后,后进先的特性。 ----------------------- 实验2--实验报告全文共3页,当前为第1页。 实验2--实验报告全文共3页,当前为第2页。 实验2--实验报告全文共3页,当前为第3页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值