登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
科技
›
顺序栈的初始化、入栈、出栈、遍历
顺序栈的初始化、入栈、出栈、遍历
[ 复制链接 ]
箝德孜
2025-10-5 14:23:07
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
/**
* @file name : SeqStack.c
* @brief : 该程序通过堆内存实现顺序栈元素的初始化、入栈、出栈、遍历,另外为了提高可移植性,所以顺序栈中
* 数据元素的类型为DataType_t,用户可以根据实际情况修改顺序表中元素的类型
* @author : MINDSETT@163.com
* @date : 2025/7/5
* @version : 1.0
* @note : None
* CopyRight (c) 2025 MINDSETT@163.com All Right Reserved
*/
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
//指定顺序栈中的元素的数据类型,用户可根据需要进行修改
typedef int DataType_t;
//构造一个实现顺序栈的各项参数(栈底地址+栈容量+栈顶元素的下标)的结构体
typedef struct Sequence_Stack
{
DataType_t * bottom; //栈底地址
unsigned int size; //栈容量
int top; //栈顶元素的下标
}SeqStack_t;
/**
* @name : SeqStack_Create
* @brief : 创建一个顺序栈并进行初始化
* @param : None
* @retval : 返回栈底地址
* @date : 2025/7/5
* @version : 1.0
* @note : None
*/
SeqStack_t *SeqStack_Create(unsigned int size)
{
//1.利用calloc对顺序栈的管理结构体申请一个内存
SeqStack_t *manager=(SeqStack_t *)calloc(1,sizeof(SeqStack_t));
if (NULL == manager){
perror("calloc memory for manager is failed\n");
exit(-1);
}
//2.对顺序栈管理结构体的所有元素进行初始化
manager->bottom=(DataType_t *)calloc(size,sizeof(DataType_t));
if (NULL == manager->bottom){
perror("calloc memory for Stack is failed\n");
exit(-1);
}
manager->size=size;
manager->top=-1;
return manager;
}
/**
* @name : SeqStack_IsFull
* @brief : 判断顺序栈是否已满
* @param :
* @manager:需要判断的顺序栈
* @retval : 已满返回true,未满返回false
* @date : 2025/7/5
* @version : 1.0
* @note : None
*/
bool SeqStack_IsFull(SeqStack_t *manager)
{
return (manager->top+1==manager->size)? true : false;
}
/**
* @name : SeqStack_IsEmpty
* @brief : 判断顺序栈是否为空
* @param :
* @manager:需要判断的顺序栈
* @retval : 为空返回true,不为空返回false
* @date : 2025/7/5
* @version : 1.0
* @note : None
*/
bool SeqStack_IsEmpty(SeqStack_t *manager)
{
return (-1==manager->top)? true : false;
}
/**
* @name : SeqStack_Push
* @brief : 入栈
* @param :
* @manager:需要操作的顺序栈
* @Data:需要压入的元素
* @retval : 已满返回true,未满返回false
* @date : 2025/7/5
* @version : 1.0
* @note : None
*/
bool SeqStack_Push(SeqStack_t *manager,DataType_t Data)
{
//判断顺序栈是否已满
if ( SeqStack_IsFull(manager) ){
printf("Sequence Stack is Full\n");
return false;
}
//如果顺序栈有剩余空间,则把新元素插入顺序栈的栈顶,并更新管理结构体中最后栈顶的元素下标
manager->bottom[++manager->top]=Data;
return true;
}
/**
* @name : SeqStack_Pop
* @brief : 出栈
* @param :
* @manager:需要操作的顺序栈
* @out:接收弹出的值
* @retval : 成功回true,失败返回false
* @date : 2025/7/5
* @version : 1.0
* @note : None
*/
bool SeqStack_Pop(SeqStack_t *manager, DataType_t *out)
{
//判断顺序栈是否为空
if ( SeqStack_IsEmpty(manager) ){
printf("Sequence Stack is empty\n");
return false;
}
//删除一个元素,栈顶元素下标-1
*out=manager->bottom[manager->top--];
return true;
}
/**
* @name : SeqStack_print
* @brief : 遍历顺序栈
* @param :
* @manager:需要操作的顺序栈
* @retval : 成功回true,失败返回false
* @date : 2025/7/5
* @version : 1.0
* @note : None
*/
void SeqStack_print(SeqStack_t *manager)
{
//判断顺序栈是否为空
if ( SeqStack_IsEmpty(manager) ){
printf("Sequence Stack is empty\n");
return;
}
//如果顺序栈不为空,则打印顺序栈的元素
for (int i=0;i<manager->top+1;i++){
printf("Element[%d]=%d\n",i,manager->bottom[i]);
}
printf("\n");
}
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
顺序
初始化
入栈
出栈
遍历
相关帖子
线性表(顺序表与链表)
线性表(顺序表与链表)
线性表(顺序表与链表)
线性表(顺序表与链表)
线性表(顺序表与链表)
线性表(顺序表与链表)
线性表(顺序表与链表)
线性表(顺序表与链表)
线性表(顺序表与链表)
LangGraph4j 学习系列(1)-顺序工作流
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
线性表(顺序表与链表)
3
6
仁夹篇
2026-02-11
安全
线性表(顺序表与链表)
0
4
兑谓
2026-02-11
安全
线性表(顺序表与链表)
1
7
静轾
2026-02-11
安全
线性表(顺序表与链表)
3
9
靳夏萱
2026-02-11
安全
线性表(顺序表与链表)
4
19
井晶灵
2026-02-11
安全
线性表(顺序表与链表)
0
9
吉娅寿
2026-02-11
安全
线性表(顺序表与链表)
1
5
但婆
2026-02-11
安全
线性表(顺序表与链表)
2
11
汪之亦
2026-02-11
安全
线性表(顺序表与链表)
1
15
笃迩讦
2026-02-11
安全
LangGraph4j 学习系列(1)-顺序工作流
2
452
夔新梅
2026-02-16
回复
(30)
丁若云
2025-11-20 13:27:20
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
辈霖利
2025-11-29 16:28:44
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
孓访懔
2025-11-29 19:18:56
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
万俟谷雪
2025-12-4 14:25:20
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
鼓励转贴优秀软件安全工具和文档!
昝沛珊
2025-12-20 15:38:23
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢发布原创作品,程序园因你更精彩
遇玷
2026-1-8 14:53:44
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
稿辏付
2026-1-15 11:58:33
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
姚望舒
2026-1-18 15:21:48
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢发布原创作品,程序园因你更精彩
拍棹
2026-1-20 15:15:24
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢分享,辛苦了
孟茹云
2026-1-20 17:59:39
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
笙芝
2026-1-23 05:17:15
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
啦汇
2026-1-23 07:30:49
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
翳舀
2026-1-24 10:24:11
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢楼主提供!
羔迪
2026-1-26 08:35:52
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
谲脾
2026-1-26 12:19:48
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
鼓励转贴优秀软件安全工具和文档!
姚梨素
2026-2-4 11:44:12
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
呵桢
2026-2-5 03:07:09
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
盛天欣
2026-2-5 16:49:43
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
宛蛲
2026-2-6 04:12:45
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,辛苦了
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
程序
代码
软件
签约作者
程序园优秀签约作者
发帖
箝德孜
2026-2-6 04:12:45
关注
0
粉丝关注
21
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
宋子
9898
6
韶又彤
9918
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9884
10
遗憩
10006
查看更多
今日好文热榜
567
[拆解LangChain执行引擎]非常规Pending Wri
63
AI开发-python-milvus向量数据库(2-8 -mil
77
[LKD/Linux 内核] 关于对 current_thread_i
6
[LKD/Linux 内核] 关于对 current_thread_i
5
[LKD/Linux 内核] 关于对 current_thread_i
536
杂题选做(3)
4
9、PipedInputStream和PipedOutputStream的
753
凸优化数学基础笔记(五):极小值点的判定
856
【节点】[MainLightRealtimeShadow节点]原
11
【渗透测试】HTB靶场之WingData 全过程wp
381
2023年电赛国赛经历
534
从零开始学Flink:实时数仓与维表时态Join
987
Stanford-CS336-Lecture-01 学习理解
663
FastAPI实战:WebSocket长连接保持与心跳机
361
FPGA使用镜像加载技术来切换运行中的比特流
405
赋予 AI Agent “无限续航”:语义保护型上
407
企业健身房器材配置方案:拒绝纸上谈兵,上
5
读人工智能全球格局:未来趋势与中国位势09