定義函式介面標頭檔案「sa.h」
#ifndef _sa_h
#define _sa_h
#include /* 堆疊 */
typedef struct stack stack;
/* 分配記憶體並初始化為空堆疊 */
void stack_init (stack* stack, size_t cap);
/* 釋放記憶體並恢復到初始狀態 */
void stack_deinit (stack* stack);
/* 判斷是否滿 */
int stack_full (stack* stack);
/* 判斷是否空 */
int stack_empty (stack* stack);
/* 壓入 */
void stack_push (stack* stack, int data);
/* 彈出 */
int stack_pop (stack* stack);
/* 棧頂 */
int stack_top (stack* stack);
/* 數量 */
size_t stack_size (stack* stack);
#endif /* _sa_h */
函式功能實現「sa.c」
/* 基於陣列的堆疊 */
#include #include "sa.h"
/* 分配記憶體並初始化為空堆疊 */
void stack_init (stack* stack, size_t cap)
/* 釋放記憶體並恢復到初始狀態 */
void stack_deinit (stack* stack)
/* 判斷是否滿 */
int stack_full (stack* stack)
/* 判斷是否空 */
int stack_empty (stack* stack)
/* 壓入 */
void stack_push (stack* stack, int data)
/* 彈出 */
int stack_pop (stack* stack)
/* 棧頂 */
int stack_top (stack* stack)
/* 數量 */
size_t stack_size (stack* stack)
測試用例「sa_test.c」
/* 基於陣列的堆疊 */
#include #include "sa.h"
/* 測試用例 */
int main (void)
堆疊的陣列實現
堆疊的抽象資料型別定義為 型別名稱 堆疊 stack 資料物件集 乙個有0個或多個元素的又窮線性表 操作集 對與乙個具體長度為正整數maxsize的堆疊,堆疊中元素的型別為elementtype,堆疊的基本操作主要有 1 ptr stack int maxsize 生成空棧,其最大長度為maxsiz...
堆疊的陣列實現
堆疊的抽象資料型別定義為 型別名稱 堆疊 stack 資料物件集 乙個有0個或多個元素的又窮線性表 操作集 對與乙個具體長度為正整數maxsize的堆疊,堆疊中元素的型別為elementtype,堆疊的基本操作主要有 1 ptr stack int maxsize 生成空棧,其最大長度為maxsiz...
PHP基於陣列實現的堆疊和佇列功能示例
堆疊和佇列是資料結構的兩種實現形程式設計客棧式,是使用非常廣泛的儲存資料的容器。下面呢,就分別講下這兩種容器在php中的應用 一 使用陣列實現堆疊 1 堆疊容器中,最後進棧的將會被最先出棧,即所謂的 先進後出 的資料結構。2 在php中,將陣列當做乙個棧,可使用array push 函式或者以 ar...