顺序栈的初始化,建立,插入,查找,删除。

////////////////////////////////////////////
//顺序栈的初始化,建立,插入,查找,删除。//
//Author:Wang Yong				  		  //	
//Date:	2010.8.19				  		  //
////////////////////////////////////////////


#include <stdio.h>
#include <stdlib.h>

#define  MAX 100  				//定义最大栈容量

typedef int ElemType;

///////////////////////////////////////////

//定义栈类型 
typedef struct
{
	ElemType data[MAX];
	int top;
}SeqStack;

///////////////////////////////////////////

//栈的初始化

SeqStack SeqStackInit()
{
	SeqStack s;
	s.top = -1;
	return s;
}

///////////////////////////////////////////

//判断栈空的算法

int SeqStackIsEmpty(SeqStack s)
{
	if(s.top == -1)
		return 0;
	else 
		return 1;
}

///////////////////////////////////////////

//进栈的算法

void SeqStackPush(SeqStack &s,ElemType x)
{
	if(s.top == MAX-1)				//进栈的时候必须判断是否栈满 
		printf("stack full\n"); 
	s.top++;
	s.data[s.top] = x;
}

//////////////////////////////////////////

//出栈的算法

ElemType SeqStackPop(SeqStack &s)
{
	if(s.top == -1)				//出栈的时候必须判断是否栈空 
		printf("stack empty\n");
	ElemType x;
	x = s.data[s.top];
	s.top--;
	return x;
}

//////////////////////////////////////
int main()
{
	SeqStack  stack;
	stack = SeqStackInit();
	printf("请输入进栈的元素:"); 
	ElemType x;
	while(scanf("%d",&x) != -1)
	{
		SeqStackPush(stack,x);	
	}
	printf("出栈的结果:"); 
	while(stack.top != -1)
	{
		printf("%d ",SeqStackPop(stack));
	}
	printf("\n");
	return 0;
} 


原文地址:https://www.cnblogs.com/newwy/p/1847460.html