Train Problem I 棧的應用

2021-08-04 11:46:11 字數 969 閱讀 8270

train problem i

棧的應用

題意理解:即給你乙個序列讓你判斷是否能以給出的序列的順序駛入駛出

注意這裡面的限制是需要像棧一樣先進後出

如 給你乙個序列 123 給定序列是 321 這樣的順序是沒問題的

如果是 123 駛出序列為312 這樣就不行

第一次我的理解是

先讓給定的序列全部進棧然後逐個出棧與指定序列相比較如果全部相同則說明能夠以這樣的順序出棧否則不能 所以我寫了一下**
#include

#include

using

namespace

std;

int main()

s.pop();

}if(flag)

printf("no.\n");

else

printf("finish\n");

}return

0;}

當然這個最終是報錯的

因為這種思路對於像123 213這種序列是沒有辦正確判斷的

但是當時是沒能看出來的,後看通過看網上過來人的**才知道自己的問題所在

所以把**進行了改進

#include

#include

#include

using

namespace

std;

int main()

}if(j==n) // 判斷能否全部完成

else

printf("no.\n");

printf("finish\n");

}return

0;}

棧 棧的實現

棧是一種線性儲存結構,棧中資料是按照 先進後出 方式進出棧,向棧中新增 刪除資料時,只能從棧頂進行操作。include using namespace std template class t class arraystack 建構函式 template class t arraystack arr...

棧的定義,順序棧,鏈式棧

棧又名堆疊,是資料暫時儲存的地方。它一種只能在頂端進行插入和刪除操作的特殊線性表,它按照先進後出的原則儲存資料,先進的資料被壓入棧底,最後的資料在棧頂,需要讀取資料的時候從棧頂開始彈出資料。棧具有記憶作用,對棧的插入和刪除操作中,不需要改變棧底指標。棧中允許進行插入和刪除操作的一端稱為棧頂 top ...

棧的入棧,出棧,顯示入棧元素

要實現的功能如下 printf t t1.入棧 n printf t t2.出棧 n printf t t3.顯示棧內元素 n define maxsize 5 巨集定義 typedef struct stack 定義棧 void push stack p,int e void printstack...