2 1順序棧的表示與實現

2021-10-12 01:37:29 字數 1228 閱讀 4835

棧(stack),也稱堆疊,是一種特殊的線性表,只允許在一端進行插入和刪除操作。棧表允許操作的一端叫棧頂,另一端稱棧底。棧頂是動態變化的,它由乙個棧頂指標top的變數來指示。當表中沒有元素時,稱為空棧。

**實現:

sseqstack.h

#pragma once

#include #include #define stacksize 100

typedef char datatype;

typedef struct seqstack;

//初試化

void initstack(seqstack* s)

//判空

int stackempty(seqstack s)

//取棧頂元素

int gettop(seqstack s, int* e)

else }

//在棧中插入元素

int pushstack(seqstack *s,int e)

//成功返回1,失敗返回0

else }

//彈出棧頂元素

int popstack(seqstack *s,int *e)

else }

//獲取棧長度

int stacklength(seqstack s)

//清空棧

void clearstack(seqstack s)

test.c

#pragma once

#include #include #include "sseqstack.h"

void main()

; datatype e=null;

initstack(&s);

for (i = 0; i < sizeof(a)/sizeof(a[0]); i++) }

printf("出棧的元素是:");

if (popstack(&s,&e)==1)

if (popstack(&s, &e) == 1)

printf("\n");

if (pushstack(&s,'f')==0)

if (pushstack(&s, 'g') == 0)

printf("元素出棧的序列是:");

while (!stackempty(s))

printf("\n");

}

順序棧的表示與實現

說明 想要使用順序表實現棧,結構體中應包含棧頂和棧底的指標,同時需要指定棧的儲存單元大小 動態可變 其中棧底指標base用來動態分配棧的記憶體空間,棧頂指標top用來指定棧頂元素在順序棧中的位置。初始化時top bas etop base top ba se,表示棧中無元素,而後每壓入乙個新的元素,...

順序棧 棧的順序表示和實現

用順序表表示的棧的基本操作 include include define selemtype int define status int define stack init size 100 初始空間分配量 define stackincrement 10 儲存空間分配增量 using namesp...

棧的順序表示和實現

棧是僅限定在表位進行插入和刪除的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂,相應的表頭端稱為棧底。不含元素的空表稱為空棧。假設棧s a1,a2,an 則稱a1為棧底元素,an為棧頂元素。棧中元素按啊a1,a2,an的次序進棧,退棧的第乙個元素應是棧頂元素。換句話說,棧的修改是按後進先出的原...