6-7 在乙個陣列中實現兩個堆疊 (20分)
題目出處
本題要求在乙個陣列中實現兩個堆疊。
函式介面定義:
stack createstack
(int maxsize )
;bool push
( stack s, elementtype x,
int tag )
;elementtype pop
( stack s,
int tag )
;
其中tag是堆疊編號,取1或2;maxsize堆疊陣列的規模;stack結構定義如下:
裁判測試程式樣例:
本blog已經把operation getop(); /* details omitted */
補寫,且在主程式中注釋掉void printstack( stack s, int tag ); /* details omitted */
typedef
int position;
struct snode
;typedef
struct snode *stack;
注意:如果堆疊已滿,push函式必須輸出「stack full」並且返回false;如果某堆疊是空的,則pop函式必須輸出「stack tag empty」(其中tag是該堆疊的編號),並且返回error。
#include
#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 */
operation getop()
intmain()
}return0;
}
題解**
/* 你的**將被嵌在這裡 */
stack createstack
(int maxsize )
bool push
( stack s, elementtype x,
int tag )
else
if(tag==1)
else
}elementtype pop
( stack s,
int tag )
else
if(tag ==2&&
(s->top2)
== s->maxsize)
else
*/else
if(tag==2)
return s->data[
(s->top2)++]
;}}
PTA 6 7 在乙個陣列中實現兩個堆疊c語言
函式介面定義 stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編號,取1或2 maxsize堆疊陣列的規模 stack結構定義如...
6 7 在乙個陣列中實現兩個堆疊
6 7 在乙個陣列中實現兩個堆疊 20 分 本題要求在乙個陣列中實現兩個堆疊。stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編...
6 7 在乙個陣列中實現兩個堆疊
本題要求在乙個陣列中實現兩個堆疊。stack createstack int maxsize bool push stack s,elementtype x,int tag elementtype pop stack s,int tag 其中tag是堆疊編號,取1或2 maxsize堆疊陣列的規模 ...