C語言實現通用資料結構之通用椎棧

2022-09-21 14:00:15 字數 1806 閱讀 5614

這是在通用鍊錶的基礎上實現的椎棧,關於鍊錶的實現參見:c語言實現通用資料www.cppcns.com結構之通用鍊錶 。

這裡所說的椎棧就是指的棧。

注意椎棧中只儲存了指標,沒有儲存實際的資料。

標頭檔案:

/*************************

*** file mystack.h

**************************/

#ifndef mystack_h_included

#define mystack_h_included

#includwww.cppcns.come "mylist.h"

typedef mylist mystack;

//建立堆疊

mystack * createmystack();

//釋放堆疊

void freemystack(mystack * stack);

//加入

void mystackadd(mystack* const stack, void* const data);

//刪除

void* mystackremove(mystack * const stack);

//取得堆疊頭

void* mystackgettop(const mystack * const stack);

#endif // mystack_h_included

原始檔/*************************

*** file mystack.c

**************************/

#include "mystack.h"

//建立堆疊

mystack * createmystack()

//釋放堆疊

void freemystack(mystack * stack)

//加入

void mystackadd(mystack* const stack, void* const data)

//刪除

void* mystackremove(mystack * const stack)

//取得堆疊頭

void* mystackgettopwww.cppcns.com(const mystack * const stack)

測試檔案

/*************************

*** file main.c

*** test for mystack

**************************/

#include

#include

#include "mystack.h"

typedef struct a

a; int main()

//建立椎棧

mystack * stack= createmystack();

//插入資料

mystackadd(stack, &data[0]);

mystackadd(stack, &data[2]);

mystackadd(stack, &data[6]);

//測試刪除

while(mylistgetsize(stack))

puts("");

//釋放椎棧

freemystack(stack);

//釋放資料

free(data);

return 0;

}本文標題: c語言實現通用資料結構之通用椎棧

本文位址: /ruanjian/c/441094.html

資料結構之 佇列(C語言實現)

佇列 queue 屬於表,使用佇列時插入在一端進行而刪除在另一端進行。佇列的基本操作是enqueue 入隊 它是在表的末端 隊尾 rear 插入乙個元素,還有dequeue 出隊 它是刪除 或返回 在表的開頭 隊頭 front 的元素。如下圖 define minqueuesize 5 最小佇列元素...

資料結構之棧(C語言實現)

table of contents定義 實現定義結構 定義操作初始化棧 判斷棧是否為空 訪問棧頂元素 出棧 入棧 注 對線性表操作的限制有很多,上述只介紹兩種主流的限制,在資料結構中叫做棧和佇列。棧的概念比較抽象,舉個栗子 對,就是板栗的栗子 一群人依次走進乙個死胡同,寬度只夠通行乙個人。如果他們要...

C實現通用資料結構 雙向鍊錶

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別 指向直接後繼next和直接前驅prev。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。為了標識鍊錶的頭和尾,將 第乙個元素的prev指標和最後乙個元素的next指標設定為null 要反向遍歷整個...