3.1实现顺序栈的各种基本运算
2018-02-07 16:36
274 查看
注意:GetTop函数与Pop函数的比较,只是少了s->top++
程序代码:
sqstack.cpp
//顺序栈基本运算算法
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int top; //栈指针
} SqStack; //顺序栈类型
void InitStack(SqStack *&s)
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
void DestroyStack(SqStack *&s)
{
free(s);
}
bool StackEmpty(SqStack *s)
{
return(s->top==-1);
}
bool Push(SqStack *&s,ElemType e)
{
if (s->top==MaxSize-1) //栈满的情况,即栈上溢出
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
s->top--;
return true;
}
bool GetTop(SqStack *s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
return true;
}
exp3-1.cpp
#include"sqstack.cpp"
int main()
{
ElemType e;
SqStack *s;
char ch[5]={'a','b', 'c','d','e'};
int i=0;
int length =5;
printf("\n");
printf(" (1)初始化栈\n");
InitStack(s);
printf(" (2)栈为%s\n",(StackEmpty(s)?"空":"非空"));
printf(" (3)依次进栈元素a,b,c,d,e\n");
while(i<length)
{ Push(s,ch[i]);
i++;
}
printf(" (4)栈为%s\n",(StackEmpty(s)?"空":"非空"));
printf(" (5)出栈序列:");
while(!(StackEmpty(s)))
{
Pop(s,e);
printf(" %c ",e);
}
printf("\n");
printf(" (6)栈为%s\n",(StackEmpty(s)?"空":"非空"));
printf(" (7)销毁栈\n");
DestroyStack(s);
}
运行截图:
程序代码:
sqstack.cpp
//顺序栈基本运算算法
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int top; //栈指针
} SqStack; //顺序栈类型
void InitStack(SqStack *&s)
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
void DestroyStack(SqStack *&s)
{
free(s);
}
bool StackEmpty(SqStack *s)
{
return(s->top==-1);
}
bool Push(SqStack *&s,ElemType e)
{
if (s->top==MaxSize-1) //栈满的情况,即栈上溢出
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
s->top--;
return true;
}
bool GetTop(SqStack *s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
return true;
}
exp3-1.cpp
#include"sqstack.cpp"
int main()
{
ElemType e;
SqStack *s;
char ch[5]={'a','b', 'c','d','e'};
int i=0;
int length =5;
printf("\n");
printf(" (1)初始化栈\n");
InitStack(s);
printf(" (2)栈为%s\n",(StackEmpty(s)?"空":"非空"));
printf(" (3)依次进栈元素a,b,c,d,e\n");
while(i<length)
{ Push(s,ch[i]);
i++;
}
printf(" (4)栈为%s\n",(StackEmpty(s)?"空":"非空"));
printf(" (5)出栈序列:");
while(!(StackEmpty(s)))
{
Pop(s,e);
printf(" %c ",e);
}
printf("\n");
printf(" (6)栈为%s\n",(StackEmpty(s)?"空":"非空"));
printf(" (7)销毁栈\n");
DestroyStack(s);
}
运行截图:
相关文章推荐
- 实现顺序栈的各种基本运算的算法
- 编写一个程序实现顺序栈的各种基本运算(假设顺序表的元数基本类型为Char)
- 实现顺序队列各种基本运算的算法
- 实现顺序队列各种基本运算的算法
- 实现顺序栈的各种基本运算的算法
- 实现顺序串各种基本运算的算法
- 实现顺序表的各种基本运算
- 编写一个程序,实现顺序环形队列的各种基本运算。
- 编写一个程序实现顺序表的各种基本运算(假设顺序表的元数基本类型为Char)
- 实现顺序表各种基本运算的算法
- 实现环形队列各种基本运算的算法(用顺序结构)
- 实现顺序表的各种基本运算(利用线性表来实现)
- 实现顺序栈各种基本运算
- 编写一个程序,实现顺序表的各种基本运算
- 实现顺序表各种基本运算算法
- 实现顺序栈各种基本运算的算法
- 编写一个程序,实现顺序栈的各种基本运算。
- 线性表—顺序表-顺序表基本运算的实现
- 顺序栈基本运算的实现 字符型栈
- 编写一个程序,实现链栈的各种基本运算