栈的顺序存储的初始化、判断栈空、入栈、出栈、读取栈顶元素、栈置空、求栈长操作
2018-01-15 13:54
316 查看
栈的顺序存储的初始化、判断栈空、入栈、出栈、读取栈顶元素、栈置空、求栈长操作
代码如下:
//栈的顺序存储表示
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct Node{ //定义栈
ElemType data[MAXSIZE];
int top;
}SeqStack;
void *Init_Stack(SeqStack *&s) //栈的初始化
{
s=(SeqStack*)malloc(sizeof(SeqStack)); //方法一
// s=new SeqStack; 方法二
s->top=-1;
}
int Stack_Empty(SeqStack *s) //当栈空时返回1,否则返回0
{
if(s->top==-1)
return 1;
else
return 0;
}
void Push_Stack(SeqStack *s,ElemType x) //入栈操作,当栈未满的时候入栈
{
if(s->top==MAXSIZE-1)
printf("Stack full\n");
else
{
s->top++;
s->data[s->top]=x;
}
}
void GetTop_Stack(SeqStack *s) //读取栈顶元素操作
{
ElemType x;
if(Stack_Empty(s))
{
printf("Stack empty.\n");
}
else
{
x=s->data[s->top];
printf("%d\n",x);
}
}
ElemType Pop_Stack(SeqStack *s) //出栈操作,若栈不为空则删除栈顶元素
{
ElemType x;
if(Stack_Empty(s)) //判断栈是否为空
{
printf("Stack Empty\n");
return NULL;
}
else
{
x=s->data[s->top];
s->top--;
return x;
}
}
void Clear_Stack(SeqStack *s) //栈置空操作
{
s->top=-1;
}
void Stack_Length(SeqStack *s)
{
printf("stack length is %d\n",s->top+1);
}
int main()
{
SeqStack *s;
Init_Stack(s);
Push_Stack(s,1);
Push_Stack(s,2);
Push_Stack(s,3);
GetTop_Stack(s);
Pop_Stack(s);
GetTop_Stack(s);
Stack_Length(s);
Clear_Stack(s);
Stack_Length(s);
return 0;
}
代码如下:
//栈的顺序存储表示
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct Node{ //定义栈
ElemType data[MAXSIZE];
int top;
}SeqStack;
void *Init_Stack(SeqStack *&s) //栈的初始化
{
s=(SeqStack*)malloc(sizeof(SeqStack)); //方法一
// s=new SeqStack; 方法二
s->top=-1;
}
int Stack_Empty(SeqStack *s) //当栈空时返回1,否则返回0
{
if(s->top==-1)
return 1;
else
return 0;
}
void Push_Stack(SeqStack *s,ElemType x) //入栈操作,当栈未满的时候入栈
{
if(s->top==MAXSIZE-1)
printf("Stack full\n");
else
{
s->top++;
s->data[s->top]=x;
}
}
void GetTop_Stack(SeqStack *s) //读取栈顶元素操作
{
ElemType x;
if(Stack_Empty(s))
{
printf("Stack empty.\n");
}
else
{
x=s->data[s->top];
printf("%d\n",x);
}
}
ElemType Pop_Stack(SeqStack *s) //出栈操作,若栈不为空则删除栈顶元素
{
ElemType x;
if(Stack_Empty(s)) //判断栈是否为空
{
printf("Stack Empty\n");
return NULL;
}
else
{
x=s->data[s->top];
s->top--;
return x;
}
}
void Clear_Stack(SeqStack *s) //栈置空操作
{
s->top=-1;
}
void Stack_Length(SeqStack *s)
{
printf("stack length is %d\n",s->top+1);
}
int main()
{
SeqStack *s;
Init_Stack(s);
Push_Stack(s,1);
Push_Stack(s,2);
Push_Stack(s,3);
GetTop_Stack(s);
Pop_Stack(s);
GetTop_Stack(s);
Stack_Length(s);
Clear_Stack(s);
Stack_Length(s);
return 0;
}
相关文章推荐
- 栈的链式存储的定义、初始化、判断空、入栈、出栈、读取栈顶元素、求栈长度、清空栈操作
- C语言实现顺序栈的基本操作(初始化、判断空、入栈、出栈、获取栈顶元素)
- 顺序栈的基本操作:初始化、进栈、出栈、读栈顶元素
- C++栈的初始化,入栈,出栈,获取栈顶元素等操作
- 采用顺序存储实现栈的初始化、入栈、出栈操作。
- 顺序栈和链式栈的结构及其基本操作(置空,获取栈顶元素,入栈,出栈)
- JAVA顺序栈操作——初始化、入栈、出栈、判断空栈、判断栈满
- 数据结构栈的数组实现初始化,入栈,出栈,获取栈顶元素,栈的长度等操作
- 链栈:初始化、判断栈空、入栈、出栈、获取栈顶元素等
- 【数据结构之旅】顺序栈的定义、初始化、空栈判断、入栈、出栈操作
- 顺序队列的创建、初始化、判断空、入队、出队、读取队头元素、置空、求队长操作
- 顺序栈的定义、初始化、出栈、入栈等操作 C++代码实现
- 剑指offer 22---判断元素出栈、 入栈顺序的合法性
- c++ 实现顺序栈类(初始化,入栈,退栈。读栈顶元素以及顺序输出栈顶指针与栈中的元素<<计算机软件技术基础 徐士良>>
- 元素出栈、入栈顺序的合法性(判断一个字符串是否按照出栈顺序)
- 顺序栈的相关操作(初始化、入栈、出栈)
- 顺序栈的基本操作:初始化、进栈、出栈、读栈顶元素
- 链式堆栈的初始化、出栈、入栈、取栈顶元素、判空
- 判断元素出栈、入栈顺序的合法性。如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1)是合法序列
- 顺序栈的定义、初始化、出栈、入栈等操作 C++代码实现 ——感想