#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
typedef int DataType_t;
typedef struct SequenceStack
{
DataType_t* Bottom;
unsigned int Size;
int Top;
}SeqStack_t;
SeqStack_t* SeqStack_Create(unsigned int size)
{
SeqStack_t* Manager = (SeqStack_t*)calloc(1, sizeof(SeqStack_t));
if (NULL == Manager)
{
perror("calloc memory for manager is failed");
exit(-1);
}
Manager->Bottom = (DataType_t*)calloc(size, sizeof(DataType_t));
if (NULL == Manager->Bottom)
{
perror("calloc memory for Stack is failed");
free(Manager);
exit(-1);
}
Manager->Size = size;
Manager->Top = -1;
return Manager;
}
bool SeqStack_IsFull(SeqStack_t* Manager)
{
return (Manager->Top + 1 == Manager->Size) ? true : false;
}
bool SeqStack_Push(SeqStack_t* Manager, DataType_t Data)
{
if (SeqStack_IsFull(Manager))
{
printf("SeqStack Full is Full!\n");
return false;
}
Manager->Bottom[++Manager->Top] = Data;
return true;
}
bool SeqStack_IsEmpty(SeqStack_t* Manager)
{
return (-1 == Manager->Top) ? true : false;
}
DataType_t SeqStack_Pop(SeqStack_t* Manager)
{
DataType_t temp = 0;
if (SeqStack_IsEmpty(Manager))
{
printf("SeqStack is Empty!\n");
return;
}
temp = Manager->Bottom[Manager->Top--];
return temp;
}
void SeqStack_Print(SeqStack_t* Manager)
{
for (int i = 0; i <= Manager->Top; ++i)
{
printf(" Stack Element[%d] = %d\n", i, Manager->Bottom[i]);
}
if (Manager->Top ==-1)
printf("全部出栈");
}
int main(int argc, char const* argv[])
{
int *p=SeqStack_Create(10);
printf("入栈\n");
SeqStack_Push(p, 10);
SeqStack_Push(p, 20);
SeqStack_Push(p, 30);
SeqStack_Push(p, 40);
SeqStack_Print(p);
printf("-----------------\n");
printf("出栈\n");
printf("%d\n",SeqStack_Pop(p));
printf("%d\n", SeqStack_Pop(p));
printf("%d\n", SeqStack_Pop(p));
printf("%d\n", SeqStack_Pop(p));
SeqStack_Print(p);
return 0;
}
测试:

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)