c語言實現鏈棧

2021-09-26 05:49:28 字數 1002 閱讀 4706

//c語言 棧的鏈式表示與實現

/*採用順序儲存的棧也具有順序表類似的缺點:

採用順序儲存的棧,即順序棧的儲存空間無法事先確定,

如果棧空間分配過小,可能會造成溢位;如果棧空間分配過大,

又容易造成儲存空間浪費,因此可以採用鏈式儲存結構表示棧*/

#include #includetypedef int elemtype;

//定義鏈棧結點

typedef struct node linkstack;

//初始化鏈棧

linkstack* initstack()

//判斷是否為空棧

int stackempty(linkstack *top)

//進棧

int pushstack(linkstack* top, elemtype e)

//出棧

int popstack(linkstack* top)

top->next = p->next;

e = p->data;

free(p);

return e;

}//取棧頂元素

int gettop(linkstack* top, elemtype e)

e = p->data;

return 1;

}//得到棧的長度

int getlength(linkstack *top)

return count;

}//銷毀鏈棧

void destorystack(linkstack* top)

}int main() while (n != 0);

while (top!=null)

*/ int n = 28;

int x;

linkstack* p=initstack();

while (n > 0)

while (!stackempty(p))

}

C語言實現鏈棧

鏈棧顧名思義,採用鍊錶實現,其優點是不存在棧滿上溢位的情況,其操作都是在頭結點之後進行的,入棧類似與頭插法建立鍊錶。注意頭結點與棧頂節點的區別,在沒有元素入棧時,棧僅有初始化的乙個頭結點,判斷其是否為空只需判斷s next是否為null。下面用c語言 實現了鏈棧的基本操作 執行環境 vs2017 執...

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

我自己寫的 部分 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...