順序表示的棧 順序棧2 出入棧操作

2021-09-01 12:17:19 字數 1112 閱讀 4873

出棧和入棧

利用順序棧的基本操作,將元素a,b,c,d,e,f,g,h依次入棧,再將棧頂元素即h,g出棧。然後把x,y入棧,最後將元素全部出棧,並依次輸出出棧元素。

seqstack.h

#pragma once

#include using namespace std;

#define stacksize 100

typedef char datatype;

typedef struct

seqstack;

void initstack(seqstack *s)

/*初始化棧*/

int stackempty(seqstack s)

/*判斷是否為空*/

else }

int gettop(seqstack s,datatype *e)

/*取棧頂元素*/

else }

int pushstack(seqstack *s,datatype e)

/*將元素e入棧*/

else }

int popstack(seqstack *s, datatype *e)

/*將棧頂元素出棧,賦值給e*/

else }

int stacklength(seqstack s)

/*求棧的長度*/

void clearstack(seqstack *s)

/*清空棧*/

main.cpp

#include #include "seqstack.h"

#include void main()

; datatype e;

initstack(&s);

for (i = 0; i < sizeof(a) / sizeof(a[0]);i++) }

cout << "依次出棧的元素是:";

if (popstack(&s,&e)==1)

{ cout 結果:

出棧入棧順序問題

不定項選擇題 依次讀入資料元素序列入棧,每進乙個元素,機器可要求下乙個元素入棧或彈棧,如此進行,則棧空時彈出的元素構成的序列是以下 序列?牛客444334號 ada 可行步驟 a入棧,b入棧,c入棧,d入棧,d出棧,e入棧,e出棧,c出棧,f入棧,f出棧,b出棧,g入棧,g出棧,a出棧 b 不可行,...

入棧出棧的順序問題

題意 某個字母序列,把這字母序列按順序壓入棧中,在任意過程,允許字元出棧,求所有的可能性 思路 模擬出棧入棧的過程,暴力列舉每一種情況。include include include include include using namespace std int n char str 1000 vo...

n個數順序入棧後的出棧順序

解法 遞推法 有n個位置,現在任意選定乙個數,比如1,那麼1可以在1 n的任意乙個位置上。假設1在第k的位置上,顯然在1的前面有k 1個數,並且這些數的數值為2 k,在1後面有n k個數。用f k 表示k個數順序入棧後的出棧順序,則f n 就是我們要求的最終答案。而f n 這個事件又可以分解成1在1...