#include <stdio.h>
#include <stdlib.h>
#include "SeqStack.h"
void SS_Initiate(SqStack &S)
// 顺序栈的初始化,即构造一个空的顺序栈
{
S.elem = (ElemType*)malloc(sizeof(ElemType)*MAXSIZE);
S.top=-1;
}
void SS_Free(SqStack &S)
// 释放顺序栈
{
free(S.elem);
}
bool SS_IsEmpty(SqStack S)
// 判断顺序栈是否为空
{
return S.top==-1;
}
bool SS_IsFull(SqStack S)
// 判断顺序栈是否为满
{
return S.top==MAXSIZE-1;
}
void SS_Print(SqStack S)
//从栈底到栈顶输出所有元素
{
int i;
if(SS_IsEmpty(S))
{
printf("stack data: Empty!\n");
return;
}
printf("stack data (from bottom to top):");
for(i=0;i<=S.top;i++)
printf(" %d", S.elem[i]);
printf("\n");
}
void SS_Push(SqStack &S, ElemType e)
// 插入元素e为新的栈顶元素
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
void SS_Pop(SqStack &S, ElemType &e)
// 删除S的栈顶元素,用e返回其值
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
void SS_Top(SqStack S, ElemType &e)
// 获取栈顶元素赋给e
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
是不是这样就行?
void SS_Push(SqStack &S, ElemType e)
// 插入元素e为新的栈顶元素
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
S.top++;
S.elem[S.top] = e;
/********** End **********/
}
void SS_Pop(SqStack &S, ElemType &e)
// 删除S的栈顶元素,用e返回其值
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
if (S.top >= 0)
{
e = S.elem[S.top];
S.top--;
}
/********** End **********/
}
void SS_Top(SqStack S, ElemType &e)
// 获取栈顶元素赋给e
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
if (S.top >= 0)
e = S.elem[S.top];
/********** End **********/
}
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632