stackli.h
typedef int elementtype;
/* start: fig3_39.txt */
#ifndef _stack_h
#define _stack_h
struct node;
typedef struct node *ptrtonode;
typedef ptrtonode stack;
int isempty(stack s);
stack createstack(void);
void disposestack(stack s);
void makeempty(stack s);
void push(elementtype x, stack s);
elementtype top(stack s);
void pop(stack s);
#endif /* _stack_h */
/* end */
stackli.c
#include "stackli.h"
#include "fatal.h"
#include // 節點
struct node
;/* start: fig3_40.txt */
// 判斷棧是否為空,判斷方法為判斷頭節點s指向的下乙個節點是否為空
intisempty(stack s)
/* end */
/* start: fig3_41.txt */
// 建立乙個棧,主要是建立乙個頭節點
stack
createstack(void)
// 建立乙個空棧
void
makeempty(stack s)
/* end */
// 處理掉這個棧,即清空所有元素並釋放頭節點
void
disposestack(stack s)
/* start: fig3_42.txt */
// 進棧操作
void
push(elementtype x, stack s)
}/* end */
/* start: fig3_43.txt */
// 返回棧頂元素
elementtype
top(stack s)
/* end */
/* start: fig3_44.txt */
// 彈出棧頂元素
void
pop(stack s)
}/* end */
teststkl.c(main.c)
#include #include "stackli.h"
int main()
disposestack(s);
return 0;
}
fatal.h
#include #include #define error( str ) fatalerror( str )
#define fatalerror( str ) fprintf( stderr, "%s\n", str ), exit( 1 )
執行結果:
棧的C 單鏈表實現
使用c風格的實現,棧的內部使用單鏈表結構實現。實現介面為 建立表頭 入棧 出棧 反轉 列印 清空 結構如下 singlelist.h 資料結構的宣告和定義 main.cpp 測試資料結構 singlelist.h pragma once include includeusing namespace ...
單鏈表實現 C語言
單鏈表分為帶頭結點和不帶頭結點。頭結點是和普通結點一樣,有資料域,指標域。資料域存放鍊錶結點的個數,指標域存放指向鍊錶的指標。不帶頭結點是指煉表有乙個單純的指標,指向鍊錶,不儲存資料。pragma once ifndef linklist h 防止標頭檔案重複引用 define linklist h...
C語言單鏈表實現
今天分享一下單鏈表 有空頭 的一些操作!主要呢就是增 刪 列印!單鏈表可以比喻成一趟火車,有空頭的單鏈表就像是乙個火車頭拉著一節有一節的車廂。乙個車廂中有資料域和指標域,指標域用來連線,每節車廂肯定要有東西連著,不然就沒有方向了。如圖 所以連線的時候只要將指標域指向下乙個節點就是連線上了,然後刪除呢...