在棧的順序儲存實現中,另有一種方法是將top定義為棧頂的上乙個位置。請編寫程式實現這種定義下堆疊的入棧、出棧操作。如何判斷堆疊為空或者滿?
函式介面定義:
bool push( stack s, elementtype x );
elementtype pop( stack s );
其中stack結構定義如下:
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 ); / 裁判實現,細節不表 */
int main()
}return 0;/* 你的**將被嵌在這裡 */
輸入樣例:
4pop
push 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
bool push( stack s, elementtype x )
else
}elementtype pop( stack s )
else return s->data[--(s->top)];
}
另類堆疊 15分
在棧的順序儲存實現中,另有一種方法是將top定義為棧頂的上乙個位置。請編寫程式實現這種定義下堆疊的入棧 出棧操作。如何判斷堆疊為空或者滿?函式介面定義 bool push stack s,elementtype x elementtype pop stack s 其中stack結構定義如下 type...
習題3 14 另類堆疊 15分
bool push stack s,elementtype x elementtype pop stack s typedef int position typedef struct snode ptrtosnode struct snode typedef ptrtosnode stack 注意 ...
另類堆疊 (20 分)
在棧的順序儲存實現中,另有一種方法是將top定義為棧頂的上乙個位置。請編寫程式實現這種定義下堆疊的入棧 出棧操作。如何判斷堆疊為空或者滿?bool push stack s,elementtype x elementtype pop stack s 其中stack結構定義如下 typedef int...