C語言棧的單鏈表實現 原始碼筆記

2022-01-11 16:01:34 字數 1819 閱讀 7273

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語言單鏈表實現

今天分享一下單鏈表 有空頭 的一些操作!主要呢就是增 刪 列印!單鏈表可以比喻成一趟火車,有空頭的單鏈表就像是乙個火車頭拉著一節有一節的車廂。乙個車廂中有資料域和指標域,指標域用來連線,每節車廂肯定要有東西連著,不然就沒有方向了。如圖 所以連線的時候只要將指標域指向下乙個節點就是連線上了,然後刪除呢...