雙棧

      網友投稿 704 2025-04-05

      利用棧底位置相對不變的特性,可以讓兩個順序棧共享一個空間。

      具體實現方法大概有兩種:

      一種是奇偶棧,就是所有下標為奇數的是一個棧,偶數是另一個棧。但是這樣一個棧的最大存儲就確定了,并沒有起到互補空缺的作用,我們實現了也就沒有太大意義。

      還有一種就是,棧底分別設在數組的頭和尾。進棧往中間進就可以了。這樣,整個數組存滿了才會真的棧滿。

      那我們直接開始代碼實現

      首先定義結構體:

      typedef struct

      {

      int top[2], bot[2]; //棧頂和棧底指針

      int *V; //棧數組

      int m; //棧最大可容納元素個數

      }DblStack;

      初始化雙棧s,長度為n:

      void Init(DblStack &S,int n)

      {

      S.m = n;

      S.V = new int [n+10];

      S.bot[0] = S.top[0] = -1;

      S.bot[1] = S.top[1] = S.m;

      }

      判空:

      int EmptyStack0(DblStack S)

      {

      if(S.top[0]==-1)return 0;

      else return 1;

      }

      int EmptyStack1(DblStack S)

      {

      if(S.top[1]==S.m)return 0;

      else return 1;

      }

      判滿:(沒有單獨判斷一個棧的,是判斷整個儲存空間還有沒有地方)

      int FullStack(DblStack S)

      {

      if(S.top[1]-S.top[0]==1)return 1;

      else return 0;

      }

      進棧:

      void Push0(DblStack &S,int e)

      {

      if(S.top[1]-S.top[0]!=1)

      {

      S.top[0]++;

      S.V[S.top[0]] = e;

      }

      }

      void Push1(DblStack &S,int e)

      {

      if(S.top[1]-S.top[0] != 1)

      {

      S.top[1]--;

      S.V[S.top[1]] = e;

      }

      }

      出棧:

      void Pop0(DblStack &S,int &e)

      {

      if(S.top[0]!=-1)

      {

      e = S.V[S.top[0]];

      S.top[0]--;

      }

      }

      雙棧

      void Pop1(DblStack &S,int &e)

      {

      if(S.top[1]!=S.m)

      {

      e = S.V[S.top[1]];

      S.top[1]++;

      }

      }

      數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:一鍵將Excel中的零0值快速隱藏不僅適用于當前表和當前區域(如何隱藏excel表中的0)
      下一篇:怎嗎給別人發(怎么給別人發)
      相關文章
      久久久久亚洲Av片无码v| 亚洲一区精品中文字幕| 日韩亚洲综合精品国产| 国产亚洲AV夜间福利香蕉149| 久久精品国产亚洲精品2020| 亚洲av中文无码乱人伦在线r▽| 亚洲国产精品无码第一区二区三区| 亚洲国产a∨无码中文777| 激情小说亚洲图片| 亚洲综合久久一本伊伊区| 亚洲综合熟女久久久30p| 亚洲日本中文字幕一区二区三区| 亚洲中字慕日产2021| 亚洲爆乳无码专区| 国产av天堂亚洲国产av天堂| 国产亚洲精AA在线观看SEE| 日本中文一区二区三区亚洲| 亚洲色欲色欲www| 亚洲人成77777在线观看网| 亚洲va在线va天堂va888www| 亚洲人成在线影院| 亚洲精品V欧洲精品V日韩精品 | 国产成人亚洲精品狼色在线| 中文字幕专区在线亚洲| 亚洲国产精品无码观看久久| 国产成人亚洲精品无码AV大片| 亚洲精品无码久久久久AV麻豆| 亚洲精品无码高潮喷水A片软| 亚洲国产成人精品无码区花野真一 | 亚洲国产中文v高清在线观看| 亚洲精品视频在线看| 国产亚洲精品a在线观看| 久久亚洲精品中文字幕三区| 亚洲国产人成在线观看69网站| 亚洲综合图片小说区热久久| 亚洲狠狠婷婷综合久久久久| 亚洲激情在线观看| 亚洲国产精品综合久久网各| 老司机亚洲精品影院无码| 亚洲国产成人无码av在线播放| 97久久国产亚洲精品超碰热|