鏈棧及基本操作的實現

2021-09-28 16:28:15 字數 647 閱讀 9824

#include  "pch.h"

#include #include #include #include // 因為棧鏈結點是動態分配的,不考慮棧溢位

typedef struct lnode

lnode;

// 棧初始化【帶頭結點】

void intistack(lnode *&lst)

// 判斷棧是否為空

int isempty(lnode *lst)

// 頭結點指向棧頂 用頭插法

void push(lnode *lst, int x)

// 彈棧

int pop(lnode *lst, int *x)

// 相當於單鏈表刪除

lnode *p = lst->next; // 指向棧頂

*x = p->data; // 獲取資料

lst->next = p->next;

free(p);

return 1;

}int main()

// 持續彈棧

printf(" \n 不斷彈出棧中元素 直到棧空 ");

while (a->next!= null)

}

效果圖如上圖

鏈棧的基本操作及回文

標頭檔案linkstack.h ifndef linkstack h included define linkstack h included typedef int status typedef int selemtype define ok 1 define error 1 typedef st...

棧的基本操作及實現(順序棧)

順序儲存結構來實現的棧稱為順序棧,它利用一組位址連續的儲存單元存放自棧底到棧頂的資料元素,同時附設乙個指標top來指示當前棧頂的位置。注意,是c 特有的用來表示引用呼叫,所以此檔案應以.cpp字尾儲存 結構體為 define maxsize 50 typedef int elemtype typed...

鏈棧基本操作

棧基本概念 棧 stack 是限定在表尾進行插入和刪除操作的線性表 或單鏈表 只能在一段進行插入和刪除,因此不存在,在中間進行插入 棧頂 top 允許插入和刪除的一端。而另一端稱為棧底 bottom 空棧 不含任何資料元素的棧。後進先出 兩個基本操作 棧的插入操作 push 叫做進棧,或壓棧,或入棧...