内存:128  时间:1

题目描述

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
#define SizeMax 105
typedef char ElemType;
typedef struct
{
    ElemType data[SizeMax];
    int top;
} SqStack;

void InitStack(SqStack *&s)
{
    s=(SqStack*)malloc(sizeof(SqStack));
    memset(s->data,0,sizeof(SqStack));
    s->top=-1;
}

int StackEmpty(SqStack *s)
{
    return s->top==-1;
}

int Legth(SqStack *s)
{
    return s->top+1;
}
void PrintStack(SqStack *s)
{
    for(int i=(int)strlen(s->data)-1; i>=0; i–)
        printf("%c",s->data[i]);
    printf("
");
}

void DestroyStack(SqStack *&s)
{
    free(s);
}

int main()
{
    SqStack *s;
    InitStack(s);                       //初始化栈
    ElemType a,b,c,d,e;
    cin>>a>>b>>c>>d>>e;
    Push(s,a);                          //入栈
    Push(s,b);
    Push(s,c);
    Push(s,d);
    Push(s,e);
    printf("栈的长度为%d
",Legth(s));  //输出栈的长度
    PrintStack(s);                       //输出从栈顶到栈底的元素
    DestroyStack(s);                     //释放栈
    return 0;
}

实现顺序栈的入栈操作。 void Push(SqStack *&s,ElemType x) 为将元素x入栈s中。假设顺序表的元素类型为char,主函数及其他函数已给出。

注意:只提交 void Push(SqStack *&s,ElemType x)部分。

输入

输入入栈的5个元素

输出

输出栈的长度

输出从栈顶到栈底的元素

样例输入

a b c d e

样例输出

栈的长度为5
edcba

提示

请使用C++编译并提交

代码如下


#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
#define SizeMax 105
typedef char ElemType;
typedef struct
{
    ElemType data[SizeMax];
    int top;
} SqStack;

void InitStack(SqStack *&s)
{
    s=(SqStack*)malloc(sizeof(SqStack));
    memset(s->data,0,sizeof(SqStack));
    s->top=-1;
}

int StackEmpty(SqStack *s)
{
    return s->top==-1;
}

int Legth(SqStack *s)
{
    return s->top+1;
}
void PrintStack(SqStack *s)
{
    for(int i=(int)strlen(s->data)-1; i>=0; i--)
        printf("%c",s->data[i]);
    printf("
");
}

void DestroyStack(SqStack *&s)
{
    free(s);
}
void Push(SqStack *&s,ElemType x);
int main()
{
    SqStack *s;
    InitStack(s);                       //初始化栈
    ElemType a,b,c,d,e;
    cin>>a>>b>>c>>d>>e;
    Push(s,a);                          //入栈
    Push(s,b);
    Push(s,c);
    Push(s,d);
    Push(s,e);
    printf("栈的长度为%d
",Legth(s));  //输出栈的长度
    PrintStack(s);                       //输出从栈顶到栈底的元素
    DestroyStack(s);                     //释放栈
    return 0;
}void Push(SqStack *&s,ElemType c)
{
    s->top++;
    s->data[s->top]=c;

}

代码来源于互联网,仅供参考!