栈的数组实现
来源:互联网 发布:逗屋网络 编辑:程序博客网 时间:2024/06/05 11:56
栈的数组实现,顾名思义, 就是不适用链表指针的形式的栈.
了解链表的基本用法,也就很清楚栈的数组原理
思路将在代码中解释,
#include <stdio.h>#include <stdlib.h>//定义一个结构体, 包含了一个数组,num 代表数组的编号, 即第几个元素struct Node{ int num; int *a;};typedef struct Node *T;//将num与-1 判断, num = -1 即表示该数组的元素没有初始化int IsEmpty(T node){ return node->num == -1;}//创建,并初始化T Creat(T node, int SIZE){ if(node == NULL) node = (T)malloc(sizeof(struct Node)); //初始化数组 node->a = (int *)malloc(sizeof(int) * SIZE); //将num 初始化为 -1 node->num = -1; if (node->a == NULL) return 0; return node;}//为数组进行赋值, 每赋值一个, num++; 即在数组顶压一个数, 即进栈T Inset(T node, int m){ node->a[++node->num] = m; return node;}//返回数组最后进的元素int Top(T node){ if (!IsEmpty(node)) return node->a[node->num]; return 0;}//删除最后进入数组的元素, 即出栈void Pop(T node){ if (!IsEmpty(node)) --node->num;}int main(){ int i; i = 0; int SIZE; scanf("%d", &SIZE); T node = NULL; node = Creat(node, SIZE); while (i < 5) { int m; scanf("%d", &m); node = Inset(node, m); i++; } Pop(node); printf("%d", Top(node)); system("pause"); return 0;}
阅读全文
0 0
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的C数组实现
- 下推栈的数组实现
- 【数据结构】栈-数组的实现
- [数据结构] 栈的数组实现
- ADT栈的数组实现
- c++ 栈的数组实现
- 数组实现栈的数据结构
- HDU-1231,最大区间连续和总结-分治法-dp
- Android 实现截图和分享
- 【Unity】UI界面的热更新技术 FairyGUI的使用流程
- 弹性ScrollView 上下拉超出后,手指离开后弹回的“阻尼”效果
- 极验(Geetest) Laravel 5 集成开发包,让验证更安全
- 栈的数组实现
- andriod sdk哪些是必须下载安装的包
- 关于MongoDB批量修改不成功的问题
- JavaSE_语法基础
- Android Kotlin学习--基础语法
- python坑:生成器雁过不留痕
- iOS开发UI篇—CALayer简介
- 利用Python-caffe进行图像分类,卷积核的显示,激活值特征图的显示以及全连接层直方图显示
- 《云计算架构技术与实践》读书笔记(五):Docker 容器及其调度