栈(stack)(C语言实现)及括号配对问题

目录

一、头文件

二、栈的结构

三、初始化

四、判断是否为空

五、判断是否为满

六、输出栈

七、进栈

八、出栈

九、测试代码

十、括号匹配代码

十一、main函数

十二、总结


一、头文件

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

#define MAXSIZE 10

二、栈的结构

typedef struct CharStack
{
	int top;
	int data[MAXSIZE];
}*CharStackPtr;

三、初始化

//初始化
CharStackPtr initStack()
{
	CharStackPtr newPtr = (CharStackPtr)malloc(sizeof(struct CharStack));
	newPtr->top = -1;
	return newPtr;
} 

四、判断是否为空

//判断是否为空
int isEmpty(CharStackPtr newStack)
{
	if(newStack->top == -1)
	return 0;
	else
	return 1;
} 

五、判断是否为满

//判断是否为满栈
int isFull(CharStackPtr newStack)
{
	if(newStack->top >= MAXSIZE-1)
	return 1;
	else
	return 0;
}

 

 

六、输出

//输出 
void outputStack(CharStackPtr newStack)
{
	int i;
	for(;i<=newStack->top;i++)
	{
		printf("%c ",newStack->data[i]);
	}
	printf("\r\n");
}

七、进栈

//进栈
void push(CharStackPtr newStack,int newData)
{
	//判断栈满
	if(isFull(newStack))
	{
		printf("The stack is full.\n");
		return ;
	}
	newStack->top++;
	newStack->data[newStack->top] = newData;		 
} 

八、出栈</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenshengnannn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值