7 線性表 棧 順序儲存的拓展 迎面增長的儲存方式

2022-02-02 12:10:40 字數 1157 閱讀 3856

描述:

設有兩個棧,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...