出棧和入棧
利用順序棧的基本操作,將元素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...