資料結構之棧(1 2) 在乙個陣列中實現兩個堆疊

2021-10-07 18:13:00 字數 2026 閱讀 2803

本題要求在乙個陣列中實現兩個堆疊。

函式介面定義:

stack createstack

(int maxsize )

;bool push

( stack s, elementtype x,

int tag )

;elementtype pop

( stack s,

int tag )

;

其中tag是堆疊編號,取1或2;maxsize堆疊陣列的規模;stack結構定義如下:

typedef

int position;

struct snode

;typedef

struct snode *stack;

注意:如果堆疊已滿,push函式必須輸出「stack full」並且返回false;如果某堆疊是空的,則pop函式必須輸出「stack tag empty」(其中tag是該堆疊的編號),並且返回error。

裁判測試程式樣例:

#include

#include

#define error 1e8

typedef

int elementtype;

typedef

enum

operation;

typedef

enum

bool;

typedef

int position;

struct snode

;typedef

struct snode *stack;

stack createstack

(int maxsize )

;bool push

( stack s, elementtype x,

int tag )

;elementtype pop

( stack s,

int tag )

;operation getop()

;/* details omitted */

void

printstack

( stack s,

int tag )

;/* details omitted */

intmain()

}return0;

}/* 你的**將被嵌在這裡 */

輸入樣例:5push 1 1

pop 2

push 2 11

push 1 2

push 2 12

pop 1

push 2 13

push 2 14

push 1 3

pop 2

end輸出樣例:

資料結構 乙個陣列實現兩個棧

乙個陣列實現兩個棧有很多想法,我先寫一種比較簡單的,思路如下圖所示 如下 includeusing namespace std 乙個陣列實現兩個棧 template class arraystack void pusharray1 const t x else cout 該棧已滿 0 else co...

資料結構 兩棧共享乙個陣列的學習

充分利用順序棧單向延伸的特性 使用乙個陣列來儲存兩個棧 乙個棧底為陣列頭 乙個棧底為陣列尾 兩棧向中間延伸 include using namespace std const int maxsize 100 template class bothack 對於兩棧共享的無參建構函式 將兩個棧的棧頂指標...

資料結構 堆疊佇列 在乙個陣列中實現兩個堆疊

6 3 在乙個陣列中實現兩個堆疊 20 分 時間限制 400 ms 記憶體限制 64 mb 長度限制 16 kb 本題要求在乙個陣列中實現兩個堆疊。stack createstack int maxsize bool push stack s,elementtype x,int tag elemen...