入棧和出棧的基本操作

2021-10-02 23:35:15 字數 821 閱讀 1991

題目

描述

輸入乙個整數序列a1,a2,a3...,an。當ai不等於-1時將ai進棧;當ai=-1時,輸出棧頂元素並將其出棧。

輸入多組資料,每組資料有兩行,第一行為序列的長度n,第二行為n個整數,整數之間用空格分隔。當n=0時輸入結束。

輸出對於每一組資料輸出若干行。每行為相應的出棧元素。當出棧異常時,輸出「pop error」並結束本組資料的輸出。

輸入樣例 1 

5

1 2 -1 -1 1

51 -1 -1 2 2

0

輸出樣例 1

211

pop error

**

#include #define maxsize 10000

using namespace std;

typedef struct

sqstack;

int initstack(sqstack &s)

int push(sqstack &s,int e)

{ if(s.top-s.base==s.stacksize)return 0;//cout<<"push error"<>n;

if(n==0)return 0;

while(n>0)

{ //cout<<"n:"<>a;

if(a!=-1&&tag==0)push(s,a);

else

{if(tag==0)

{if(pop(s,e))

{cout<

入棧和出棧的基本操作

描述 輸入乙個整數序列a1,a2,a3.an。當ai不等於 1時將ai進棧 當ai 1時,輸出棧頂元素並將其出棧。輸入多組資料,每組資料有兩行,第一行為序列的長度n,第二行為n個整數,整數之間用空格分隔。當n 0時輸入結束。輸出對於每一組資料輸出若干行。每行為相應的出棧元素。當出棧異常時,輸出 po...

棧元素入棧出棧操作(C)

元素入棧時,會先將棧壓入,top指標再向上加一。c語言如何實現呢,下面是入棧的 片段 typedef struct node sqstack void push sqstack s,int elem 入棧 s top elem,s本為指向node結構的乙個指標,本來對普通結構體指標賦值或者使用用 s...

入棧和出棧問題

首先要知道對n個元素入棧,其出棧順序共有多少種情況?這個結果是 2n n 1 n n 即如果有3個元素,那麼出棧的順序共有5中情況。a b c 的順序入棧,那麼出棧情況如下 1 abc 2 bac 3 bca 4 cba 5 acb 出棧問題歸根到底為 先入後出原則。如果第乙個出棧的為a,那麼bc還...