当前位置:主页 > bte365娱乐 >

推送和弹出问题

时间:2019-11-06 13:35   bte365娱乐  

全部展开
#includestdio。
h#includemalloc。
h#defineOK1#defineERROR0 //定义堆栈顺序#defineSTACK_SIZE100 //存储空间的初始分配#defineSTACK_INC10 //增加存储空间的分配typedefcharElem; typedefstruct{Elem * base; //堆栈底部指针Elem * top。//堆栈顶部指针Intize; //当前分配的存储空间}SqStack; typedefintStatus; //创建一个空电池。堆栈的顶部指针和堆栈的底部指针相同。堆栈为空StatusCreatStack(SqStack&S){S.
Base =(Elem *)malloc(STACK_SIZE * sizeof(Elem)); S.
以上= S
基地; S.
Size = STACK_SIZE; returnOK;}//堆栈为空StatusStackEmpty(SqStackS){if(S.
起来!
= S
Base)returnERROR; returnOK;}// StatusPush推送(SqStack&S,Eleme){if(S.
前S
基数= S
大小){//电池已满,额外的存储空间S。
Base =(Elem *)重新分配(S.
基地,(南
大小+ STACK_INC)* sizeof(Elem)); S.
以上= S
基数+ S
尺寸; S。
大小或+ = STACK_INC;}* S
高于= e; S.
顶部+ = 1; returnOK;}//弹出StatusPop(SqStack&S,Elem&e){if(S.
顶端== S
Base)returnERROR; S.
上-= 1; e = * S
返回returnOK;}