顺序栈的基本操作实现

原创 2012年03月23日 10:37:53
#include<stdlib.h>
#include<iostream>
using namespace std;
#define StackSize 100					//顺序栈的初始分配空间
typedef struct
{
	char data[StackSize];			//保存栈中元素
	int top;							//栈指针
}SqStack;
void InitStack(SqStack *st)				//*st为引用型参数
{
	st->top=-1;
}
int push(SqStack *st,char x)		//进栈运算
{
	if(st->top==StackSize-1)			//栈满
		return 0;
	else
	{
		st->top++;						//栈不满
		st->data
			[st->top]=x;
		return 1;
	}
}
int pop(SqStack *st,char  *x)		//出栈运算,*st,*x都为引用型参数
{
	if(st->top=-1)						//栈空
		return 0;
	else
	{
		*x=st->data[st->top];			//栈不空
		st->top--;
		return 1;
	}
}
int gettop(SqStack *st,char *x)		//取栈顶元素,x为引用型参数
{
	if(st->top==-1)						//栈空
		return 0;
	else
	{
		*x=st->data[st->top];
		return 1;
	}
}
int getall(SqStack *st,char *x)
{
	if(st->top==-1)
		return 0;
	else
	{
		while(st->top!=-1)
		{
		*x=st->data[st->top];
		cout<<*x;
		st->top--;
		}
	}
}
int StackEmpty(SqStack *st)				//判断栈是否为空
{
	if(st->top==-1)
		return 1;
	else
		return 0;
}
void main()
{
	SqStack st;
	char e;
	InitStack(&st);
	cout<<"栈";
	if(StackEmpty(&st)==1)
		cout<<"空"<<endl;
	else
		cout<<"不空"<<endl;
	cout<<"a 进栈"<<endl;push(&st,'a');
	cout<<"b 进栈"<<endl;push(&st,'b');
	cout<<"c 进栈"<<endl;push(&st,'c');
	cout<<"d 进栈"<<endl;push(&st,'d');
	cout<<"e 进栈"<<endl;push(&st,'e');
	cout<<"栈";
	if(StackEmpty(&st)==1)
		cout<<"空"<<endl;
	else
		cout<<"不空"<<endl;
	gettop(&st,&e);
	cout<<"栈顶元素"<<endl;
	cout<<"出栈次序";
	getall(&st,&e);
	while(!StackEmpty(&st))
	{
		pop(&st,&e);
		cout<<e;
	}
	cout<<"\n";
}

顺序栈——9种基本操作和实现(C语言)

栈是仅限定在表尾进行插入和删除操作的线性表,九种栈的基本操作;分别是构造 销毁 清空 栈长 栈顶 插入 删除 遍历。下面就是代码实现:  //头文件 #include #include #incl...
  • LiuJiuXiaoShiTou
  • LiuJiuXiaoShiTou
  • 2016年11月29日 16:42
  • 9237

顺序栈的九种基本操作和实现(数据结构C语言版清华大学严蔚敏)

栈是仅限定在表尾进行插入和删除操作的线性表,在严蔚敏版的C语言版的数据结构中共定义了九种栈的基本操作;分别是构造 销毁 清空 栈长 栈顶 插入 删除 遍历。下面就是代码实现: 头文件和宏定义(保存...
  • WLxinliang
  • WLxinliang
  • 2016年10月22日 19:51
  • 5137

栈的顺序存储结构和操作实现 数组实现

今天
  • u010943460
  • u010943460
  • 2014年09月01日 22:09
  • 808

数据结构顺序栈和链栈基本操作----c++实现

顺序栈: #include using namespace std; #define MaxSize 50 class SeqStack{ private: int data[MaxSize]...
  • supersnow0622
  • supersnow0622
  • 2012年11月25日 16:48
  • 4256

C语言实现顺序栈的基本操作

继顺序表后再用C语言写一下顺序栈的基本操作
  • OnlyLove_KD
  • OnlyLove_KD
  • 2016年09月12日 09:14
  • 2687

采用顺序栈完成进制转换

采用顺序栈完成进制转换 (1)定义顺序栈的存储结构; (2)实现顺序栈的初始化、判断是否为空、进栈、出栈等基本操作; (3)调用顺序栈的基本操作实现进制转换。 代码: #includ...
  • migu77777
  • migu77777
  • 2016年10月17日 20:08
  • 1218

实验四 顺序栈和链队列的操作

实验四 顺序栈和链队列的操作 一.实验目的 1.掌握栈的顺序存储结构;验证顺序栈及其基本操作的实现;验证栈的操作特性。 2.掌握队列的链接存储结构;验证链队列的存储结构和基本操作的实现;...
  • zuyan266
  • zuyan266
  • 2014年11月27日 22:51
  • 987

C++实现顺序栈的基本功能

栈是限定仅在表头进行插入和删除操作的线性表,有着先进后出的特点(FILO); 现在我来动手实现栈的基本本功能练练手; 定义栈的头文件如下: #ifndef CSTOCK_H_ #define C...
  • qinmusiyan
  • qinmusiyan
  • 2014年10月07日 13:30
  • 9014

数据结构 — 3.模式匹配

【问题描述】试编写一个算法,识别依次读入的一个以@为结束符的字符序列是否为形如"序列1&序列2"模式的字符序 列. 其中序列1和序列2中都不含字符'&',且序列2是序列1的逆序.例如,"a+b&b+a...
  • PeersLee
  • PeersLee
  • 2015年10月27日 17:36
  • 2925

6-5 链栈的基本操作(10 分)PTA无法评测但是感觉写的符合要求

6-5 链栈的基本操作(10 分) S是一个顺序栈,函数Push_L(LinkStack &S, SElemType e)是在链栈中插入一个元素e,函数Pop_L(LinkStack &S, SEl...
  • jianbagengmu
  • jianbagengmu
  • 2017年11月27日 16:30
  • 81
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:顺序栈的基本操作实现
举报原因:
原因补充:

(最多只允许输入30个字)