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

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

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

//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;

} 





你可能感兴趣的:(初始化)