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