栈的代码实现之数组方案
来源:互联网 发布:游标卡尺的数据异常值 编辑:程序博客网 时间:2024/06/03 16:44
栈是一种具有从宏观上来看是“先进后出”功能特点的数据结构。可以由数组或者链表来实现。
其实现原理是从“一端”操作,导致先存储的数据最后被取出。有栈顶、栈底等因素组成。在《C语言,好爽》第7版(2017年)第76集:栈的代码实现之数组方案,中对栈的内存实现原理进行了详解。这里只从宏观上来理解,以及相关代码如何实现。
其结构体类型为:
#define N 30
struct _stack
{
int top;
int data[N];
};
typedef struct _stack mystack;
对栈的操作通常有初始化、判断栈空、栈满,入栈,操作,清空等操作。这里分别实现:
调用代码:
int main() {
mystack ms;
init(&ms);
int flag = 0;
int value = 0;
value = 0;
flag = push(&ms, value);
if (flag)
{
printf("%d 入栈成功", value);
}
else
{
printf("%d 入栈失败", value);
}
value = 1;
flag = push(&ms, value);
if (flag)
{
printf("%d 入栈成功", value);
}
else
{
printf("%d 入栈失败", value);
}
value = 2;
flag = push(&ms, value);
if (flag)
{
printf("%d 入栈成功", value);
}
else
{
printf("%d 入栈失败", value);
}
show(&ms);
//弹出栈
int output_value = 0;
int output_flag = 0;
output_flag = pop(&ms, &output_value);
if (output_flag)
{
printf("出栈成功,出栈的数据为:%d", output_value);
}
else
{
printf("出栈失败");
}
output_flag = pop(&ms, &output_value);
if (output_flag)
{
printf("出栈成功,出栈的数据为:%d", output_value);
}
else
{
printf("出栈失败");
}
output_flag = pop(&ms, &output_value);
if (output_flag)
{
printf("出栈成功,出栈的数据为:%d", output_value);
}
else
{
printf("出栈失败");
}
show(&ms);
system("pause");
return 0;
}
测试结果:
- 栈的代码实现之数组方案
- 数组实现栈的代码
- Jenkins代码审查功能的实现方案
- 扩充数组方案实现
- 智能手机之双卡双待的实现方案
- 可跨域的单点登录(SSO)实现方案【附.net代码】
- 实现动态数组 msdn的代码
- PHP如何实现return数组的代码
- 堆排序的数组实现代码
- Java代码实现二维数组的排序
- Android 代码实现TextView 数组的应用
- 代码编辑器之关键字染色, 优化了的方案
- 代码编辑器之关键字染色, 优化了的方案
- 硬件仿真实现之---SkyEye的设计实现方案
- C代码实现数组
- C代码实现数组
- C代码实现数组
- 使用数组实现栈的旧项遗忘策略代码实现
- 解决iframe重定向让父级页面跳转
- shell学习(更新中)
- 【JavaScript学习】面向对象的程序设计(4):借用构造函数(经典继承)
- 洛谷 P3371 【模板】单源最短路径
- [乐意黎] 通过Apache代理访问NodeJS服务
- 栈的代码实现之数组方案
- 回顾大一·C语言编程4.2(2)
- vue+bootstrap响应是轮播绑数据(视频门户网站)
- iOS开发笔记之Timestamp时间戳与各地区实际时间格式的相互转换
- python如何装饰递归函数
- java的JDK安装好后运行cmd显示没有安装成功
- ros学习笔记-lesson1
- 基于java反射筛选List对于不同实体泛型的公共方法
- 第2次课改善深层神经网络:超参数优化、正则化以及优化