栈的基本操作的实现(初始化、赋值、取值、插入、删除等)顺序存储结构

#include
#include
#define maxsize 64
typedef int datatype;


//定义结构体
typedef struct
{
	datatype data[maxsize];
	int top;
} seqstack;


//建立顺序栈
seqstack *SET(seqstack *s)
{
	int i;
	s=(seqstack*)malloc(sizeof(seqstack));
	s->top=-1;
	printf("请输入顺序栈元素(整型,以0结束):");
	scanf("%d",&i);
	do
	{
		s->top++;
		s->data[s->top]=i;
		scanf("%d",&i);
	}
	while(i!=0);
	printf("顺序栈建立成功\n");
	return s;
}
//清空栈
void SETNULL(seqstack *s)
{
	s->top=-1;
}
//判断栈空
int EMPTY(seqstack *s)
{
	if(s->top>=0)
		return 0;
	else return 1;
}

//进栈
seqstack *PUSH(seqstack *s)
{
	int x;
	printf("你想要插入的数字:");
	scanf("%d",&x);
	if(s->top==maxsize-1)
	{
		printf("overflow");
		return NULL;
	}
	else
	{
		s->top++;
		s->data[s->top]=x;
	}
	return s;
}

//退栈
seqstack *POP(seqstack *s)
{
	if(s->top<0)
	{
		printf("underlow");
		return s;
	}
	else
	{
		s->top--;
		printf("删除的栈顶元素是:");
		printf("%d\n",(s->data[s->top+1]));
	}
	return s;
}

//取栈顶
void TOP(seqstack *s)
{
	if(s->top<0)
	{
		printf("stack is empty");
	}
	else
	{
		printf("当前的栈顶元素是:");
		printf("%d\n",(s->data[s->top]));
	}
}

//输出栈
void print(seqstack *s)
{
	int i;
	if(s->top<0)
	{
		printf("清空栈成功!");
	}
	for(i=s->top; i>=0; i--)
		printf("%d ",s->data[i]);
}

//主函数
int main()
{
	seqstack *s;
	int i,j;
	printf("1.建立一个顺序栈\n");
	printf("2.输出栈\n");
	printf("3.进栈\n");
	printf("4.退栈\n");
	printf("5.取栈顶元素\n");
	printf("6.清空栈\n");
	printf("7.判断栈是否为空\n");
	printf("8.结束程序\n");
	do
	{
		printf("\n\n请选择想要实现的功能:");
		scanf("%d",&i);
		switch(i)
		{
			case 1:
				s=SET(s);
				break;
			case 2:
				print(s);
				printf("\n");
				break;
			case 3:
				s=PUSH(s);
				print(s);
				printf("\n");
				break;
			case 4:
				s=POP(s);
				print(s);
				printf("\n");
				break;
			case 5:
				TOP(s);
				break;
			case 6:
				SETNULL(s);
				print(s);
				printf("\n");
				break;
			case 7:
				j=EMPTY(s);
				if(j==1)
					printf("空栈\n");
				else
					printf("非空栈\n");
				break;
			case 8:
				exit (0);
		}
	}
	while(1);
	return 0;
}

 实验运行效果图

栈的基本操作的实现(初始化、赋值、取值、插入、删除等)顺序存储结构_第1张图片

 

你可能感兴趣的:(数据结构)