C語言共享?xiàng)?/h1>

棧的操作我相信大家都應(yīng)該了解了弄懂了,? 如果沒弄懂希望可以去再去看看相關(guān)的資料,我博客中的C語言中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式中涉及到了一下棧的基本操作,有興趣的朋友也可以看看。

所謂共享?xiàng)#褪莾蓚€(gè)棧共同使用一塊內(nèi)存空間,其中一個(gè)棧的棧底作為另一個(gè)棧的棧頂,反之亦然。

## 開始

### 思路分析

>因?yàn)閮蓚€(gè)棧公用一個(gè)空間,假設(shè)一個(gè)棧為0#,規(guī)定其為空時(shí)top[0]==-1;另一個(gè)棧為1#規(guī)定其為空時(shí),top[1]==MaxSize;

>入棧時(shí),先確定棧號是否合法,然后查看是對0#棧還是1#棧進(jìn)行操作,入棧操作和順序棧的入棧操作并無太大不同。

>選定之后進(jìn)行入棧操作。這里應(yīng)該注意此共享?xiàng)J欠褚褲M,如果已滿則不能進(jìn)行入棧操作。如若入棧成功則返回0;入棧失敗則返回-1;

>出棧時(shí),先確定棧號是否合法,然后查看是對0#棧還是1#棧進(jìn)行操作,出棧操作和順序棧的出棧操作并無太大不同。

>選定之后進(jìn)行出棧操作。如果出棧成功返回0;出棧失敗返回-1;


### 添加適當(dāng)?shù)念^文件,定義一個(gè)棧數(shù)據(jù)結(jié)構(gòu),

共享?xiàng)R彩菞#徊贿^有點(diǎn)特殊,在這里我們還是需要添加適當(dāng)?shù)念^文件和定義恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)

```c

#include

#include

#defineMaxSize100

typedefintElemType;

typedefstruct{

ElemType data[MaxSize];

int top[2];

}SqStack;

```

### 初始化共享?xiàng)?/p>

由于我這里用的是順序存儲結(jié)構(gòu)的棧結(jié)構(gòu)(也就是數(shù)據(jù)),top也就是一個(gè)標(biāo)記而已,分別代編棧1和棧2的標(biāo)記

```c

voidInitStack(SqStack *s)

{

s->top[0] = -1;

s->top[1] = MaxSize;

}

```

### 入棧操作

在入棧的時(shí)候,我們需要選擇入的是兩個(gè)棧中的哪一個(gè)棧,我們這里用0和1來區(qū)分

```c

intPush(SqStack*s, ElemType x, int n)

{

if (n < 0 || n>1) {

printf("The stack number is false!\n");

return -1;

}

if (s->top[1] - s->top[0] == 1) {

printf("The stack is full!\n");

return -1;

}

switch (n) {

case 0:s->data[++s->top[0]] = x; break;

case 1:s->data[--s->top[1]] = x; break;

}

return 0;

}

```

### 出棧操作

出棧和入棧一樣,也需要選擇出棧的具體是哪個(gè)棧

```c

intPop(SqStack*s, ElemType*x, int n)

{

if (n < 0 || n>1) {

printf("The stack number is false!\n");

return -1;

}

switch (n) {

case 0:

if (s->top[0] == -1) {

printf("The stack[0] is empty!\n");

}

*x = s->data[s->top[0]--];

break;

case 1:

if (s->top[1] == MaxSize) {

printf("The stack[1] is empty!\n");

}

*x = s->data[s->top[1]++];

break;

}

return 0;

}

```

### 主函數(shù)

```c

intmain(intargc,char*argv[])

{

SqStack s;

InitStack(&s);

ElemType x = 5;

int n = 0;

int flagPush;

flagPush = Push(&s, x, n);

if (flagPush) {

printf("Push false!\n");

}

else {

printf("Push %d success!\n", x);

}

int flagPop;

flagPop = Pop(&s, &x, n);

if (flagPop) {

printf("Pop false!\n");

}

else {

printf("Pop %d? success!\n", x);

}

return 0;

}

```

### 運(yùn)行結(jié)果

![c語言共享?xiàng)_\(yùn)行結(jié)果](http://objects.earthchen.cn/C%E8%AF%AD%E8%A8%80%E5%85%B1%E4%BA%AB%E6%A0%88%E7%BB%93%E6%9E%9C.png)

以上就是共享?xiàng)5暮唵尾僮鳎疫@里只測試他是否能夠成功,如有需要,請研讀代碼后自行修改,如果一時(shí)看不懂,請多看幾遍思路分析,把原理弄懂,代碼還是想當(dāng)簡單的。

>注:

>-上述代碼在**visual studio 2015**中編譯成功運(yùn)行,其他ide請自行測試

>-上述文字皆為個(gè)人看法,如有錯(cuò)誤或建議請及時(shí)聯(lián)系我

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,591評論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,554評論 2 379

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