棧的順序儲存實現及鏈式儲存實現

2021-10-07 22:18:40 字數 1529 閱讀 7693

#include

#include

#define size 100

typedef

int elemtype;

typedef

struct stackstack;

void

init

(stack *

*s)//初始化

intpush

(stack *s,elemtype e)

//入棧

s->s[

++s->top]

=e;//從s[1]開始儲存

return1;

}int

pop(stack *s,elemtype *e)

//出棧

//*e儲存棧頂元素

stacknodeptr p;

p=s->top;

//將當前棧頂結點賦給指標p

s->top=s->top->next;

free

(p);

s->count--

;return1;

}int

main()

printf

("\n");

int x;

for(

int i=

0;i<=

9;i++

)return0;

}

對於鏈棧來說,基本不存在棧滿的情況,除非記憶體不夠用了,對於空棧的判斷,**中是根據count的數值來判斷的,當然也可以通過棧頂指標s->top,當其為null時棧為空,回到棧的初始化狀態。

棧的Java實現(順序儲存實現與鏈式儲存實現)

首先,定義棧空的異常型別 class stackemptyexception extends runtimeexception 然後,定義stack介面 inte ce stack 棧順序儲存的實現 class stackarray implements stack public int getsi...

C 棧的順序儲存和鏈式儲存的實現

棧是最常見的資料結構,其特點是後進先出 last in first out 也是鍊錶的特殊形式,所以和鍊錶一樣,有兩種儲存方式,第一是順序儲存的棧,方便快速讀寫資料,但是棧的長度必須先固定 第二種是鏈式儲存的棧,可以不用定義棧的長度,可以大量插入資料,如果不是物理記憶體使用完的話,可以儲存大量的資料...

棧順序儲存 鏈式儲存

1.棧的順序儲存之動態儲存 include include define ok 1 define false 0 define true 1 define stack init size 20 儲存空間初始分配量 define stackincrement 5 儲存空間分配增量 typedef in...