這裡使用結構體來表示棧。
#define maxsize 100
typedef
struct stackstack
編碼前,我們需要明白幾個操作狀態。
棧空:top = -1,-1 同時也是初始值;
棧滿:top=maxsize-1;
入棧:棧不滿,則top+1,然後data[top]=數值;棧滿則入棧失敗;
出棧:棧非空,則先取data[top],然後top-1;
實現的**如下:
#include
#include
#include
#define maxsize 200
typedef
struct snode* stack;
typedef
struct snode snode;
struct snode
;stack initial_stack()
bool push
(stack s,
int item)
else
}bool isempty
(stack s)
bool isfull
(stack s)
intgetelement
(stack s,
int index)
if(index > s->top || index <0)
return s->data[index];}
intpop
(stack s)
inttop
(stack s)
void
printstack
(stack s)
printf
("\n");
}int
main()
棧的鏈式結構是通常是通過單鏈表來實現的,且不存在棧滿上溢的情況。
這裡所實現的鏈式結構規定棧存在乙個頭結點,這個結點與棧元素無關,但是能方便程式設計的實現。
頭結點的下乙個結點儲存的值才是棧底元素。
實現**如下:
#include
#include
#include
typedef
struct snode* stack;
typedef
struct snode snode;
struct snode
;stack initial_stack()
bool isempty
(stack s)
bool push
(stack s,
int item)
inttop
(stack s)
intpop
(stack s)
void
printstack
(stack s)
printf
("\n");
}int
main()
資料結構(C語言實現)之堆疊(順序棧)
棧的表示和操作的實現 資料結構課本上的都是偽 不能直接執行 但是偽 的好處還是很多的 便於理解 寫作快 實際上稍微改一下就可以了 最重要的還是理解順序棧這種資料結構 include stdio.h include define maxsize 100 define overflow 1 define...
資料結構 堆疊(順序儲存)GO語言實現
順序儲存的堆疊可以看作是乙個操作被限制的陣列,遵循著後進先出 lifo 的原則。順序儲存的堆疊 arraystack.go package stack import fmt 使用順序儲存實現堆疊資料結構 type stack struct 定義該棧的大小 棧中元素個數查詢 func this sta...
C語言實現堆疊 棧 的資料結構
include include include define elemtype int struct node struct stack elemtype gettop struct stack s struct stack createstack struct stack push struct ...