用顺序表实现栈

栈是一种有约束的顺式结构,他需要遵循先进后出,后进先出的基本规则,我们可以用顺序表和链表两种方式来实现
在这里插入图片描述
因为简单就意味着不容易出错,所以在这里我使用顺序表来实现栈

Stack.h

#pragma once

#include<Windows.h>
#include<assert.h>
//对于栈我们可以用顺序表和链表来实现,栈的代码并不难,在此处,为了省事,直接用顺序表来表示

typedef int SDataType;

#define MAX_SIZE (100)


typedef struct{
	SDataType array[MAX_SIZE];
	int top;
} Stack;

void InitStack(Stack *pS)//初始化栈
{
	pS->top = 0;
}

void StackPush(Stack *pS, SDataType data)//压栈
{
	assert(pS->top < MAX_SIZE);
	pS->array[pS->top] = data;
	pS->top++;
}

void StackPop(Stack *pS)//出栈,栈中只有一个出栈的方向
{
	pS->top--;
}

void StackDestroy(Stack *pS)//销毁栈
{
	pS->top = 0;
}

SDataType StackTop(const Stack *pS)//返回栈顶元素
{
	assert(pS->top > 0);
	return pS->array[pS->top - 1];
}

int StackSize(const Stack *pS)//返回栈元素的数量
{
	return pS->top;
}

int StackEmpty(const Stack *pS)//判断栈是否为空
{
	return pS->top == 0 ? 1: 0;
}

void test()
{
	Stack pS;
	InitStack(&pS);
	StackPush(&pS,1);
	StackPush(&pS,2);
	StackPush(&pS,3);
	StackPush(&pS,4);
	StackPush(&pS,5);
	StackPush(&pS,6);
	StackPop(&pS);
	int tmp = StackTop(&pS);
	int size = StackSize(&pS);
	int empty = StackEmpty(&pS);
}

test.c

#define _CRT_SECURE_NO_WARNINGS 1
#include"Stack.h"

int main()
{
	test();
	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值