描述:
設有兩個棧,s1和s2,都採用順序棧的儲存方式。
兩個棧共享乙個儲存區:【0,……maxsize-1】
目的:可以盡量利用空間,減少溢位的可能,採用棧頂相向、迎面增長的儲存方式
ps:要注意判斷棧滿棧空的檢查
#include#include#include
using
namespace
std;
#define maxsize 100
/*棧結構的定義
*/typedef
struct
stk;
/*入棧
*//*
i表示兩個不同的棧,0表示左邊的棧,1表示右邊的棧
左邊的棧每入棧乙個元素指標向右移動,右邊的棧每入棧乙個元素指標向左移動
入棧操作前要判斷棧是否為滿
*/void initstackk(stk *s)
int push(int i,int x,stk *s)
else
if(s->top[0]==(s->top[1]-1
))
if(i==0
)
else
cout
<<"
successful.
"
}int pop(int i,int &x,stk *s)
if(s->top[i]==-1||s->top[i]==maxsize)
if(i==0
)
else
cout
<<"
successful.
"
}void showthestack(stk *s)
cout
<}int
main()
}showthestack(s);
cout
<<"
test function 'pop' by input the stack number.
"
;
while(w--)
if(out>0
)
}showthestack(s);
return0;
}
線性表 List 棧的順序儲存
棧的定義 棧是一種特殊的線性表,棧只能在棧頂一段進行操作 先進後出 棧頂 top 允許操作的一端。棧底 bottom 不允許操作的一端。棧的常用操作 1 建立棧 2 銷毀棧 3 清空棧 4 入棧 5 出棧 6 獲取棧頂元素 7 獲取棧的大小 棧的順序儲存模型 我們可以重複利用之前寫過的線性表順序儲存...
7 線性表的順序儲存結構
順序儲存定義 線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。儲存空間的起始位置 陣列node 線性表的最大容量 陣列長度maxsize 線性表的當前長度 length 判斷線性表是否合法 判斷位置是否合法 直接通過陣列下標的方式獲取元素 判斷線性表是否合法 判斷插入位...
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...