棧的順序表實現

2021-07-29 18:44:35 字數 1172 閱讀 6246

//順序棧的實現

//清空了,只是棧頂指標從頭開始,棧所占用空間已在。銷毀,就是棧記憶體釋放,這個棧就死亡了

//鍊錶形式的需要逐個結點釋放。如果是動態分配,整體一次釋放

#include

#define stacr_init_size 100

#define  stacr_add_size 10

typedef char elemtype;

typedef int status;

typedef struct

stack;

//初始化棧  

status initstack(stack *s)

s->top = s->base;

s->stacksize = stacr_init_size;

return 1;

}//銷毀棧

status destory(stack *s)

//清棧

status clearstack(stack *s)

//檢驗棧是否為空  是返回0 否返回1

status isstackempty(stack s)

return 1;

}//返回棧的長度  已使用的長度 ?還是棧初始化的長度 ?

int stacklength(stack s)

{}//返回棧頂元素的資料儲存部分

status gettop(stack s, elemtype *e)

//進行壓棧

status  push(stack *s, elemtype e)

s->top = s->base + s->stacksize;//頭指標的指向要重新確定

s->stacksize += stacr_add_size;//更新長度

}//s->top= (elemtype*)malloc(sizeof(elemtype));  已經進行過記憶體的分配  直接用

*s->top = e;//賦值

s->top++;//指標後移

return 1;

}//彈出棧頂

status pop(stack *s, elemtype *e)

//語句實現的順序我還不懂  *e=*--s->top

s->top--;

*s->top = *e;

return 1;

}

順序,鍊錶棧的實現

順序棧的實現 include include include define initsize 10 define increment 10 typedef struct sstack sstack,stack void initstack stack st int gettop stack st r...

用順序表實現棧

棧是一種有約束的順式結構,他需要遵循先進後出,後進先出的基本規則,我們可以用順序表和煉表兩種方式來實現 因為簡單就意味著不容易出錯,所以在這裡我使用順序表來實現棧 stack.h pragma once include include 對於棧我們可以用順序表和煉表來實現,棧的 並不難,在此處,為了省...

棧空間實現(順序表)

common.h ifndef common h define common h include include include include include define datatype int typedef enum bool vs2013中不支援bool型別,所以用列舉型別定義出來 en...