資料結構 C語言實現堆疊的順序和鏈式結構

2021-09-25 14:48:02 字數 1541 閱讀 6627

這裡使用結構體來表示棧。

#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 ...