数据结构之特殊的线性数据结构------------ 栈

这篇博客介绍了栈这种特殊的线性数据结构,重点讨论了栈的基本概念,包括它作为后进先出(LIFO)的数据组织方式,以及如何通过代码实现栈的功能。文章分为三个部分:定义栈的头文件“stack.h”,实现栈操作的源文件“stack.c”,以及包含主函数的测试源文件“test.c”。
摘要由CSDN通过智能技术生成

1. 什么是栈?
答:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端
称为栈顶,另一端称为栈底
2 栈的特性是什么?
答: 后进先出(类比理解:吃饭的时候,后吃进去的东西,最先吐出来).
3.栈的具体实现,代码如下

第一 创建一个头文件" stack.h" 用来 封装定义一个栈,以及声明定义一些与栈相关的处理函数

#pragma  once
typedef  int SDataType;

 typedef struct  Stack{
	SDataType*  _array;
	int _capacity;
	int _size;//表示有效元素的个数  和栈顶位置
}Stack;
 void CheckCapacity(Stack*ps);
 void  StackInit(Stack*ps);
 void  StackPush(Stack*ps, SDataType data);
 void StackPop(Stack*ps);
 SDataType StackTop(Stack*ps);
 int  StackSize(Stack*ps);
 int  StackEmpty(Stack*ps);
 void StackDestory(Stack*ps);
 void TestStack();

**第二,创建一个源文件 “stack.c” 这部分主要用来具体实现栈的处理函数

#include"stack.h"
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

//检测容量是否够用
void CheckCapacity(Stack*ps){
	assert(ps);
	if (ps->_size == ps->_capacity)  {
		// 1 开辟新空间
		int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值