這是在通用鍊錶的基礎上實現的椎棧,關於鍊錶的實現參見: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 要反向遍歷整個...