//順序棧的實現
//清空了,只是棧頂指標從頭開始,棧所占用空間已在。銷毀,就是棧記憶體釋放,這個棧就死亡了
//鍊錶形式的需要逐個結點釋放。如果是動態分配,整體一次釋放
#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...