栈的特点:后进先出
一、顺序栈
如果在顺序表的头部入栈,则需要将原有站内的元素依次后移,时间复杂度On,
所以可以采用尾部入栈,入栈时只需要把size下标设置为指定元素,出栈时直接删除下标为size-1就行,
stack.h
#pragma once
#include<stdio.h>
typedef char stacktype;
typedef struct SeqStack
{
stacktype* data;//动态申请内存空间
int size;//已有元素
int capacity;//容量
}SeqStack;
void Init(SeqStack* stack);//初始化
void Destory(SeqStack* stack);//销毁
void Push(SeqStack* stack,stacktype value);//压栈
void Pop(SeqStack* stack);//出栈
int front(SeqStack* stack,stacktype* value);//提取栈顶元素,value为输出型参数
因为顺序表总体来说还是一个数组的形式,所以存储容量是固定的,因此需要容量达到上限时开辟新的内存空间
stack.c
#include<stdio.h>
#include"stack.h"
#