信息學奧賽系列教程:數(shù)據(jù)結(jié)構(gòu)棧及應(yīng)用

棧的定義:

? ? ?棧是只能在一端進行數(shù)據(jù)插入和刪除的線性表媒熊。

棧的性質(zhì):

? ? ?后進先出(FILO)吞获,后面進去的元素渔嚷,先出來,先進去的元素后出來

棧的操作:

? ? ?棧的操作很簡單媳握,就是入棧和出棧碱屁,如下圖所示


棧的操作


棧的表示:

用一個一維數(shù)組,加一個指針蛾找,表示棧娩脾,代碼如下:

#include <iostream>

using namespace std;

const int N =10;//定義棧的長度

int a[N];? ? ? //定義棧(數(shù)組)

int TOP =0;? ? //定義棧的指針

void push(int x);? //入棧

int pop();? ? ? ? //出棧

void print();? ? //棧元素輸出

int main()

{

? ? for (int i=1;i<=11;i++)

? ? {

? ? push(i);

? ? }

? ? print();

? ? cout<<pop()<<endl;

cout<<pop()<<endl;

cout<<pop()<<endl;

print();

return 0;

}

void print()

{

for (int i=0;i<TOP;i++)

{

cout<<a[i]<<" ";

}

cout<<endl;

}

int pop()

{

int x;

if (TOP == -1)

{

? cout<<"棧已空"<<endl;

? return 0;

}

x=a[TOP-1];

TOP--;

? ? return x;

}

void push(int x)

{

? if (TOP == N)

? {

? cout<<"棧已滿"<<endl;

? return ;

? }

? a[TOP] = x;

? TOP ++;

}

棧的應(yīng)用:

求前綴、后綴表達式的值腋粥,有關(guān)前綴晦雨、后綴表達式架曹,在后面二叉樹時介紹隘冲,應(yīng)用代碼如下:

#include <iostream>

#include <cstring>

using namespace std;

const int N =255;//定義棧的長度

int a[N];? ? ? //定義棧(數(shù)組)

int TOP =0;? ? //定義棧的指針

void push(int x);? //入棧

int pop();? ? ? ? //出棧

void jisuan(string ss);

int main()

{

string ss="34+5*6-";? //34+5*6-

jisuan(ss);

cout<<"表達式的值是:"<<pop()<<endl;

return 0;

}

void jisuan(string ss)

{

for (int i=0;i<ss.length();i++)

{

int x=0,y=0;

if (ss[i] == '+')

{

x=pop();

y=pop();

push(x+y);

continue;

}

if (ss[i] == '-')

{

x=pop();

y=pop();

push(x-y);

continue;

}

if (ss[i] == '*')

{

x=pop();

y=pop();

push(x*y);

continue;

}

if (ss[i] == '/')

{

x=pop();

y=pop();

push(x/y);

continue;

}

push(ss[i]-48);

}

}

int pop()

{

int x;

if (TOP == -1)

{

? cout<<"棧已空"<<endl;

? return 0;

}

x=a[TOP-1];

TOP--;

? ? return x;

}

void push(int x)

{

? if (TOP == N)

? {

? cout<<"棧已滿"<<endl;

? return ;

? }

? a[TOP] = x;

? TOP ++;

}

棧相關(guān)題目:

在信息學奧賽中,有關(guān)棧的知識考查绑雄,主要以選擇題居多展辞,考查棧的基本概念和操作

如下面的題目:

? ? ?某個車站呈狹長型,寬度只能容下一臺車万牺,并且只有一個出入口罗珍。已知某時刻該車站狀態(tài)為空洽腺,從這一時刻開始的出入記錄為“進,出覆旱,進蘸朋,進,進扣唱,出藕坯,出,進噪沙,進炼彪,進,出正歼,出”辐马,假設(shè)車輛入站的順序為1,2,3,..則車輛的出站順序為()

A.1,2,3,4,5? ? ?B.1,2,4,5,7 C.1,4,3,7,6 ?D.1,4,3,7,2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市局义,隨后出現(xiàn)的幾起案子喜爷,更是在濱河造成了極大的恐慌,老刑警劉巖萄唇,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贞奋,死亡現(xiàn)場離奇詭異,居然都是意外死亡穷绵,警方通過查閱死者的電腦和手機轿塔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仲墨,“玉大人勾缭,你說我怎么就攤上這事∧垦” “怎么了俩由?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長癌蚁。 經(jīng)常有香客問我幻梯,道長,這世上最難降的妖魔是什么努释? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任碘梢,我火速辦了婚禮,結(jié)果婚禮上伐蒂,老公的妹妹穿的比我還像新娘煞躬。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布恩沛。 她就那樣靜靜地躺著在扰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雷客。 梳的紋絲不亂的頭發(fā)上芒珠,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音搅裙,去河邊找鬼妓局。 笑死,一個胖子當著我的面吹牛呈宇,可吹牛的內(nèi)容都是我干的好爬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼甥啄,長吁一口氣:“原來是場噩夢啊……” “哼存炮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜈漓,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤穆桂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后融虽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體享完,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年有额,在試婚紗的時候發(fā)現(xiàn)自己被綠了般又。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巍佑,死狀恐怖茴迁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情萤衰,我是刑警寧澤堕义,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站脆栋,受9級特大地震影響倦卖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜椿争,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一怕膛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丘薛,春花似錦嘉竟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至希坚,卻和暖如春边苹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裁僧。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工个束, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聊疲。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓茬底,卻偏偏與公主長得像,于是被迫代替她去往敵國和親获洲。 傳聞我的和親對象是個殘疾皇子阱表,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.把二元查找樹轉(zhuǎn)變成排序的雙向鏈表 題目: 輸入一棵二元查找樹,將該二元查找樹轉(zhuǎn)換成一個排序的雙向鏈表贡珊。 要求不...
    曲終人散Li閱讀 3,319評論 0 19
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,031評論 0 2
  • 為了見你最爬,我洗頭吹發(fā)型,擦了cpb的隔離和ysl的超模粉底液门岔,紀梵希的散粉爱致,噴了迪奧的香水,涂明彩筆和ysl的12...
    周慕君閱讀 288評論 0 0
  • 做事要有靜氣寒随,就像你從黃河里盛了一杯水糠悯,只有讓其安靜放置才可以看見清水,而不斷起伏搖晃妻往,終究是渾濁的黃河水逢防。 前一...
    躍童ING閱讀 427評論 2 1
  • 最近在看局外人這本書,我一向有個習慣蒲讯,不管是看完電視電影還是一本書忘朝,很喜歡去網(wǎng)上搜索各種各樣的觀點拿來細細品味仔細...
    sunita閱讀 137評論 0 0