c語言 實現乙個棧

2021-08-07 06:28:04 字數 1238 閱讀 7883

#include #include #include #include //入棧出站操作

typedef struct nodenode,* pnode;

typedef struct stack*pstack,stack;

void init(pstack);

void push(pstack, int);

bool isempty(pstack);

bool pop(pstack, int);

void tranverse(pstack);

void clear(pstack);

/* 1)建立節點結構體(資料域,指標域)

2)建立棧結構體(底部節點,頂部節點)

3)初始化棧(建立頂部節點,底部節點和頂部節點指向位址一致)

4)push:新建節點pnew,新節點節點的pnext指向之前的ptop,使得頂部節點為最新節點

*/void main2(void)

tranverse(&s);

clear(&s);

tranverse(&s);

}void init(pstack ps)

else

printf("init: ptop = %x ,pbottom = %x \n", ps->ptop, ps->pbottom);

}void push(pstack ps, int val)

bool isempty(pstack ps)

return false;

}bool pop(pstack ps, int* pval)

pnode pn = ps->ptop;

*pval = pn->data;

ps->ptop = ps->ptop->pnext;

return true;

}void tranverse(pstack ps)

printf("遍歷結果為:");

pnode p = (*ps).ptop;

while (p != ps->pbottom)

printf("\n");

}void clear(pstack ps)

pnode p = ps->ptop;

pnode q = null;

while (p != ps->pbottom)

ps->ptop = ps->pbottom;//清空後ptop指向非法區域,初始化ptop

}

C語言實現棧

下面程式分別實現了棧的順序儲存結構和棧的鏈式儲存結構的壓棧和彈棧操作,均在dev c 下執行通過。棧的順序儲存結構 include include include include include define ok 1 define error 0 define maxsize 10 typedef...

C語言實現棧

一 實現 vim stack c.c include stdio.h include stdlib.h 棧元素結構體 用來描述每個棧元素 struct list 棧結構體 棧頂元素指標,棧大小資訊 struct stack 棧初始化 struct stack stackinit void 入棧函式 ...

C語言實現棧

1.概念 棧是一種線性的資料結構,採用先進後出的方式管理資料,一端的位置固定 棧底 另外一端隨著資料的進出隨時改變 棧頂 2.實現思路 棧是一種邏輯概念,可以使用順序結構來實現 順序棧 也可以使用鏈式結構來實現 鏈式棧 鏈式棧可以使用單鏈表來實現,以頭結點作為棧頂,從頭部插入作為入棧,從頭部刪除作為...