堆棧的抽象數據類型描述:
-
類型名稱: 堆棧(Stack)。
-
數據對象集: 一個有 0 個或多個元素的又窮表。
-
操作集: 長度為
max_size
的堆棧 S
∈ Stack
, 堆棧元素 item
∈ ElementType
。
-
stack creatc_stack(int max_size)
: 生成空堆棧, 其最大長度為 max_size
;
-
bool is_full(stack *s, int max_size)
: 判斷堆棧 S 是否已滿;
-
void push(stack *s, element_type item)
: 將元素 item
壓入堆棧;
-
bool is_empty(stack *s)
: 判斷堆棧 S
是否為空;
-
element_type pop(stack s)
: 刪除并返回棧頂元素;
偽碼描述:
#define MAX_SIZE 10 // 存儲元素的最大個數
#define ERROE -1
#define bool int
#define True 1
#define Flase 0
// element_type 代表任意基本數據類型
typedef struct{
element_type data[MAX_SIZE];
int top;
} stack;
// 初始化一個棧
stack creatc_stack(void)
{
stack *s = (stack*)malloc(sizeof(stack));
s->top = -1;
return s;
}
// 入棧
void push(stack *s, element_type item)
{
if (s->top < MAX_SIZE-1){
s->data[(s->top)+1] = item;
s->top++;
}
}
// 出棧
element_type pop(stack *s)
{
element_type n = NULL;
if (s->top != -1){
n = s->data[(s->top--)];
}
return n;
}
// 判斷堆棧是否為空
bool is_empty(stack *s)
{
bool flag = Flase;
if (s->top == -1){
flag = True;
}
return flag;
}
// 判斷堆棧是否已滿
bool is_full(stack *s, int MAX_SIZE)
{
bool flag = Flase;
if (s->top == MAX_SIZE-1){
flag = True;
}
return flag;
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。