顺序栈的简单使用

2018/3/3

数据结构

1.头文件

/*在头文件中自定义函数的原型,和相关结构体*/
/*对顺序栈相关操作*/
#include<stdio.h>//C语言标准输入输出流
/*顺序栈的结构体模型*/
typedef int Datatype;
#define Maxsize 100
typedef struct
{
	Datatype data[Maxsize];
	int  top;
}sqstack;

/*1.初始化栈*/
void initStack(sqstack *S)
{
	S->top = 0;
}
/*2.判断是否为空栈*/
int isNotEmptyStack(sqstack S)
{
	if (S.top <= 0)
	{
		printf("\n该栈为空栈\n");
		return 0;
	}
	else
		return 1;
}
/*3.入栈*/
int stackPush(sqstack *S, Datatype x)
{
	if (S->top >= Maxsize)
	{
		printf("该栈已经满了,无法增加数字\n");
		return 0;
	}
	else
	{
		S->data[S->top] = x;//将数字插入栈
		S->top++;
		return 1;

	}
}
/*4.出栈*/
int stackPop(sqstack *S, Datatype *d)
{
	if (S->top <= 0)
	{
		printf("该栈已空,无法删除");
		return 0;
	}
	else
	{
		S->top--;
		*d = S->data[S->top];
		
	}
}
/*实现取栈顶元素*/
int stackTop(sqstack S,Datatype *d)
{
	if (S.top <= 0)
	{
		printf("该栈已经空了");
		return 0;
	}
	else
	{
		*d = S.data[S.top - 1];
		return 1;
	}
}

2.源文件

/*对于顺序栈的操作*/
#include<stdio.h>
#include<stdlib.h>
#include"sqStack.h"
typedef int DataType;
#define Maxsize 100//顺序栈的缺点之一,浪费空间
 
/*主函数*/
void main()
{
	sqstack S;
	int size,i,num;
	printf("请输入栈的规格\n");
	scanf_s("%d", &size);
	initStack(&S);//初始化栈
	printf("请输入入栈数据\n");
	for (i = 0; i < size; i++)
	{
		scanf_s("%2d", &num);
		stackPush(&S, num);//入栈
	}
	stackTop(S, &num);
	printf("栈顶元素为%2d\n", num);
	printf("出栈元素为:");
	for (i = 0; i < size; i++)
	{
		stackPop(&S, &num);
		printf("%2d",num);
	}
	
	system("pause");
	
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值