習題3 14 另類堆疊 15分

2021-10-07 02:02:16 字數 2714 閱讀 3867

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;

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

4

poppush 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...