bool push
( stack s, elementtype x )
;elementtype pop
( stack s )
;
typedef
int position;
typedef
struct snode *ptrtosnode;
struct snode
;typedef ptrtosnode stack;
注意:如果堆疊已滿,push函式必須輸出「stack full」並且返回false;如果佇列是空的,則pop函式必須輸出「stack empty」,並且返回error。
#include
#include
#define error -1
typedef
int elementtype;
typedef
enum
operation;
typedef
enum
bool;
typedef
int position;
typedef
struct snode *ptrtosnode;
struct snode
;typedef ptrtosnode stack;
stack createstack
(int maxsize )
bool push
( stack s, elementtype x )
;elementtype pop
( stack s )
;operation getop()
;/* 裁判實現,細節不表 */
void
printstack
( stack s )
;/* 裁判實現,細節不表 */
intmain()
}return0;
}/* 你的**將被嵌在這裡 */
4poppush 5
push 4
push 3
poppop
push 2
push 1
push 0
push 10
end
stack empty這個3 is out
4 is out
stack full
0 1 2 5
上
是棧頂上面的意思,而不是當前top前面的意思。
bool push
( stack s, elementtype x )
s->data[s->top++
]=x;
}elementtype pop
( stack s )
return s->data[
--s->top]
;}
#include
#include
#include
#include
#define error -1
typedef
int elementtype;
typedef
enum
operation;
typedef
enum
bool;
typedef
int position;
typedef
struct snode *ptrtosnode;
struct snode
;typedef ptrtosnode stack;
stack createstack
(int maxsize )
bool push
( stack s, elementtype x )
;elementtype pop
( stack s )
;operation getop
(void);
void
printstack
( stack s )
;int
main
(void)}
return0;
}/* 你的**將被嵌在這裡 */
operation getop
(void);
char array[5]
;scanf
("%s"
,array);if
(isupper
(array[0]
))array[0]
=array[0]
+32; operation o;
for(o=push;o<=end;o++
)//如果是c++就要將o定義為int型,c++標準不允許++運算子
}void
printstack
( stack s )
}bool push
( stack s, elementtype x )
s->data[s->top++
]=x;
}elementtype pop
( stack s )
return s->data[
--s->top]
;}
另類堆疊 15分
在棧的順序儲存實現中,另有一種方法是將top定義為棧頂的上乙個位置。請編寫程式實現這種定義下堆疊的入棧 出棧操作。如何判斷堆疊為空或者滿?函式介面定義 bool push stack s,elementtype x elementtype pop stack s 其中stack結構定義如下 type...
6 2 另類堆疊 (15 分
在棧的順序儲存實現中,另有一種方法是將top定義為棧頂的上乙個位置。請編寫程式實現這種定義下堆疊的入棧 出棧操作。如何判斷堆疊為空或者滿?函式介面定義 bool push stack s,elementtype x elementtype pop stack s 其中stack結構定義如下 type...
另類堆疊 (20 分)
在棧的順序儲存實現中,另有一種方法是將top定義為棧頂的上乙個位置。請編寫程式實現這種定義下堆疊的入棧 出棧操作。如何判斷堆疊為空或者滿?bool push stack s,elementtype x elementtype pop stack s 其中stack結構定義如下 typedef int...