栈(数组)的基本操作

本文介绍了使用数组实现的栈,通过定义StructRecord结构体,包含栈容量、栈顶位置和元素数组。提供了创建栈、压栈、弹栈等基本操作,并包含Stack.h头文件的函数声明,Stack.c的函数实现以及TestStack.c的测试代码。
摘要由CSDN通过智能技术生成

这个栈是以数组形式实现。

先定义了一个结构体StructRecord,结构体里包括三部分,栈的容量,栈顶元素的位置,和存储栈元素的数组,执行测试文件TestStack.c时需要输入栈的容量,以此来确定一个栈。

实现栈的一些规范操作,创造栈,插入,删除等。包括两个头文件Stack.h,fatal.h,库函数Stack.c,测试函数TestStack.c。头文件放的都是函数声明,库函数Stack.c放的的函数的定义。

fatal.h

#include<stdio.h>
#include<stdlib.h>
#define Error(Str) FatalError(Str)
#define FatalError(Str) fprintf(stderr, "%s\n", Str), exit(1);

Stack.h

 

复制代码
typedef char ElementType;
#ifndef _Stack_H
#include<stdbool.h>
struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode Stack;

bool IsEmpty(Stack S);//判断栈是否为空
Stack CreatStack(void);//初始化一个栈
void Pop(Stack S);//对栈进行删除工作,只能弹出栈顶元素
void MakeEmpty(Stack S);//使得一个栈制空
void Push(ElementType X, Stack S);
ElementType Top(Stack S);
void DisposeStack(Stack S);
void PrintStake(Stack S);
void balance(char *ch, Stack S);//平衡符号,在字符数组查{},[],()是否匹配
#endif // !_Stack_H
复制代码

 

 

 

Stack.c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值