1、用顺序表实现顺序栈SqStack,栈内数据域为char类型,实现栈的进栈、出栈、取栈顶元素。
2、用链表实现链式栈LinkStack,
栈内数据域为char类型,实现栈的进栈、出栈、取栈顶元素。
3、栈应用:对任意含 +、-、*、/、% 、()、[]的算术表达式,采用栈的特性,在cmd控制台输入表达式,控制台能实现表达式的正确输出及运输结果。
1、用顺序表实现顺序栈SqStack,栈内数据域为char类型,实现栈的进栈、出栈、取栈顶元素。
2、用链表实现链式栈LinkStack,
栈内数据域为char类型,实现栈的进栈、出栈、取栈顶元素。
3、栈应用:对任意含 +、-、*、/、% 、()、[]的算术表达式,采用栈的特性,在cmd控制台输入表达式,控制台能实现表达式的正确输出及运输结果。
如有帮助,请点击我回答右上角【灰色采纳】按钮
改好了,代码如下:
#include <stdio.h>
# include<iostream>
#include<stdlib.h>
#define MaxSize 50
using namespace std;
typedef char ElemType;
typedef struct
{
ElemType elem[MaxSize];
int top;
}sqStack;
int main() {
//1、用顺序表实现顺序栈SqStack,栈内数据域为char类型, 实现栈的进栈、出栈、取栈顶元素。
return 0;
}
//初始化栈
void initStack(sqStack* &s){
s = (sqStack*)malloc(sizeof(sqStack));
s->top = -1;
}
//栈长度
int stackLength(sqStack* s) {
return(s->top + 1);
}
//判断栈是否为空
int stackEmpty(sqStack* s)
{
return(s->top == -1);
}
//元素入栈
int push(sqStack * &s, ElemType e)
{
if (s->top == MaxSize - 1)
return 0;
else
{
s->top++;
s->elem[s->top] = e;
return 1;
}
}
//栈顶元素出栈
int pop(sqStack * &s, ElemType & e)
{
if (s->top == -1)
return 0;
else
{
e = s->elem[s->top];
s->top--;
return 1;
}
}
//获取栈顶元素
int getTop(sqStack * s, ElemType & e)
{
if (s->top == -1)
return 0;
else
{
e = s->elem[s->top];
return 1;
}
}