基於陣列的堆疊實現

2021-06-21 15:31:21 字數 1388 閱讀 5310

定義函式介面標頭檔案「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...