資料結構隨筆(棧的實現C語言)

2021-10-20 07:36:18 字數 1864 閱讀 9692

#include

#include

#include

#define true 1

#define false 0

#define ok 1

#define error 0

#define overfloaw -1

#define length 5

typedef

struct stack

stack;

typedef

int status;

typedef

int elemtype;

//初始化棧

status initialstack

(stack& s,

int size)

s.top =0;

s.size = size;

return ok;

}//銷毀棧

status destorystack

(stack& s)

//判斷是否為空

status isempty

(stack& s)

else

}//清空棧

void

clearstack

(stack& s)

s.top =0;

s.size =0;

}//元素進棧

status pushstack

(stack& s, elemtype e)

s.element = newbase;

s.size++;}

s.element[s.top++

]= e;

return ok;

}//取棧頂的元素並返回

elemtype gettop

(stack& s,elemtype &e)

e = s.element[s.top -1]

;return e;

}//出棧並返回

status popstack

(stack& s, elemtype& e)

e = s.element[

--s.top]

;return e;

}int

main()

; size = length;

printf

("待測試元素為\n");

for( i =

0; i < length; i++

)printf

("\n");

if(!initialstack

(s,size)

)printf

("已初始化順序棧\n");

//入棧

for(i =

0; i < s.size; i++)}

printf

("已入棧\n");

//取棧頂的元素

printf

("棧頂元素為%d"

,gettop

(s, e));

//棧頂出棧

printf

("出棧元素為\n");

for(i =

0; i < s.size; i++

)printf

("\n");

clearstack

(s);

printf

("已清空棧\n");

return0;

}

根據top的位置來確定棧頂,通過改變top的位置來定位棧頂;

下面是實現結果

待測試元素為12

345已初始化順序棧

已入棧棧頂元素為5出棧元素為54

321已清空棧

資料結構 棧的實現(C語言)

棧的實現 棧的結構可以是基於陣列的。它擁有兩個基本操作 出棧和入棧。而實現操作需要乙個 top 表示頂點。很簡單 上 include define maxsize 20 typedef int elemtype typedef int status typedef struct sqstack st...

資料結構 C語言棧的實現

首先,我們要先回顧乙個知識,對於後面棧的學習會好理解點,如果我們在main 函式中定義了乙個變數 int a 需要在乙個自定義的函式中改變其值,要怎麼操作?include stdio.h include stdlib.h intmain intadd int a 我會首先想到這種方法,將改變後的值r...

C語言資料結構 棧實現迷宮

include define max 30 typedef struct box typedef struct stack int map 10 10 int search int beginx,int beginy,int endx,int endy else return 1 find 0 wh...