C語言實現鏈棧

2021-09-18 04:06:38 字數 1042 閱讀 8377

鏈棧顧名思義,採用鍊錶實現,其優點是不存在棧滿上溢位的情況,其操作都是在頭結點之後進行的,入棧類似與頭插法建立鍊錶。

注意頭結點與棧頂節點的區別,在沒有元素入棧時,棧僅有初始化的乙個頭結點,判斷其是否為空只需判斷s->next是否為null。

下面用c語言**實現了鏈棧的基本操作:

執行環境:vs2017

執行示例:

**:

#include#include//防止程式一閃而過

#includetypedef struct node linkstack;

/*建立空棧*/

void initstack(linkstack *&s)//*&為引用,可以直接修改實參指向的位置

/*判空操作*/

int empty(linkstack *s)

/*銷毀棧*/

void destroystack(linkstack *&s)

}/*入棧*/

void push(linkstack* &s, int x)//s為頭結點

/*出棧*/

int pop(linkstack *&s, int &ptr)//通過*ptr返回出棧的值,s為頭結點

else }

/*取棧頂元素*/

int gettop(linkstack *s,int &ptr)//與出棧差距在於不改變棧

ptr = s->next->data;

return 1;

}int main()

if (pop(top,y) == 1)

if (pop(top, y) == 1)

if (pop(top, y) == 1)

system("pause");

return 0;

}

C語言實現鏈棧

不多說,直接上 include include define max 100 define ok 1 define error 1 define stack size 100 typedef int elemtype 資料庫 elemtype data 5 elemtype number 鏈棧的節點...

c語言實現鏈棧

c語言 棧的鏈式表示與實現 採用順序儲存的棧也具有順序表類似的缺點 採用順序儲存的棧,即順序棧的儲存空間無法事先確定,如果棧空間分配過小,可能會造成溢位 如果棧空間分配過大,又容易造成儲存空間浪費,因此可以採用鏈式儲存結構表示棧 include includetypedef int elemtype...

C語言實現鏈棧

我自己寫的 部分 1 include2 include3 include 4 typedef struct node 5lstack,lpstack 910 void initstack lstack top 1116 17int push lstack top,char e 18 26 p nex...