C語言鍊錶實現棧

2021-08-27 08:53:47 字數 955 閱讀 7260

/**

鍊錶實現帶頭結點的棧,入棧用頭插法

環境codeblocks

*/#include #include #include typedef int elemtype;

typedef struct node node, *linkstack;

//初始化棧

linkstack initstack(linkstack s);

//入棧

bool pushstack(linkstack s, elemtype e);

//出棧

node* popstack(linkstack s);

//列印棧

void printstack(linkstack s);

//判空

bool isemptystack(linkstack s);

//獲取棧元素個數

int getlength(linkstack s);

//初始化棧

linkstack initstack(linkstack s)

//入棧

bool pushstack(linkstack s, elemtype e)

//出棧

node* popstack(linkstack s)

return p;

}//列印棧

void printstack(linkstack s)

}//判空

bool isemptystack(linkstack s)

//獲取棧元素個數

int getlength(linkstack s)

return i;

}int main()

執行結果:

棧的鍊錶實現(C語言)

原始碼檔案位址 由前面 所述 鍊錶實現的棧在操作過程中頻繁的pop和push會伴隨著頻繁的malloc和free,伴隨著很大的系統開銷。基於此,在此實現中,通過實現乙個空閒節點鍊錶,將pop之後的鍊錶節點不釋放,而是放入空閒鍊錶freenodeptr中 當棧進行push操作的時候,先從空閒節點鍊錶中...

使用鍊錶實現棧(C語言)

下邊的實現,預設在鏈棧中設定乙個頭結點,用於指向棧的第乙個元素 typedef char datatype typedef struct nodelstacknode,linkstack void initstack linkstack top 將頭結點的指標域置為空 top next null 判...

C語言 棧 鍊錶

普通鍊錶的建立 用鍊錶構建一串數字,並輸入另乙個數插入其中。以及鍊錶的逆序。include include struct node 鍊錶的結構體建立 int main t head k head next scanf d s for i 0 i i else struct node x,y x he...