在乙個陣列中實現兩個堆疊

2021-09-29 14:01:27 字數 970 閱讀 9319

初學者難題:1.如何建立這樣的乙個陣列?

2.怎樣判斷棧的空滿?

#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;

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

stack createstack

(int maxsize )

bool push

( stack s, elementtype x,

int tag )

//如果堆疊已滿,push函式必須輸出「stack full」並且返回false

else

else

if(tag==2)

return true;

}}

堆疊 乙個陣列實現兩個堆疊

分析 一種聰明的辦法是使這兩個棧分別從陣列的兩頭向中間生長,當兩個指標相遇時,表時兩個棧都滿了。define maxsize 100 define elementtype int typedef struct strck,s s.top1 1 s.top2 maxsize 新增乙個元素 void p...

PTA 在乙個陣列中實現兩個堆疊

本題要求在乙個陣列中實現兩個堆疊。函式介面定義 stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編號,取1或2 maxsize堆...

6 7 在乙個陣列中實現兩個堆疊

6 7 在乙個陣列中實現兩個堆疊 20 分 本題要求在乙個陣列中實現兩個堆疊。stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編...