栈的顺序存储结构框架搭建
栈的顺序存储结构
数组模拟
#define MAX_SIZE 1024
#define SEQSTACK_TRUE 1
#define SEQSTACK_FALSE 0
结构体
typedef struct SEQSTACK{void* data[MAX_SIZE];int size;
}Seqstack;
- 初始化栈
Seqstack* Init_Seqstack(){Seqstack* stack=(Seqstack*)malloc(sizeof(Seqstack));for(int i=0;i<MAX_SIZE;i++){stack->data[i]=NULL;}stack->size=0;return stack;
}
- 入栈
void Push_Seqstack(Seqstack* stack,void* data){if(stack==NULL){return;}if(data==NULL){return;}if(stack==MAX_SIZE){reutrn;}stack->data[stack->size]=data;stack->size++;
}
- 返回栈顶元素
void* Top_Seqstack(Seqstack* stack){if(stack==NULL){return;}if(stack->size==0){return NULL; } return stack->data[stack->size-1];}
- 出栈
void Pop_Seqstack(Seqstack* stack){if(stack==NULL){return;}if(stack->size==0){return;}stack->data[stack->size-1]==NULL; //置空stack->size--;
}
- 判断是否为空
int IsEmpty(Seqstack* stack){if(stack==NULL){return -1;}if(stack->size==0){return SEQSTACK_TRUE;}return SEQSTACK_FALSE;
}
- 返回栈中元素个数
int Size_Seqstack(Seqstack* stack){return stack_size;
}
- 清空栈
void Clear_Seqstack(Seqstack* stack){if(stack==NULL){return;}for(int i=0;i<stack->size;i++){stack->data[i]=NULL;}stack->size=0;
}
- 销毁
void Free_Seqstack(Seqstack* stack){if(stack==NULL){return;}free(stack);
}
栈的顺序存储结构框架搭建相关推荐
- 栈的顺序存储结构、链式存储架构及其实现
顺序栈和链式栈的时间复杂度均为O(1), 因此唯一可以比较的是空间性能.初始时顺序栈必须开辟一个固定的长度内存,所以存在可存储元素个数限制和浪费空间的问题.链式栈没有栈满的问题,只有当内存空间用完才会 ...
- 栈的顺序存储结构(顺序栈)
栈的顺序存储结构 1.顺序栈的存储结构 #define MAXSIZE 100 //顺序栈存储空间的初始分配 typedef struct{SElemType *base; //栈底指针SElemTy ...
- 数据结构——栈的顺序存储结构
一.栈的概念 栈是一种操作受限的,只允许一端进行插入和删除的线性表,允许进行操作的一端叫做栈顶(top),另一端为栈底(bottom),插入操作为入栈或进栈,删除操作称为出栈或退栈. 二.栈的顺序存储 ...
- 3.1_栈_顺序存储结构(数组形式)
[栈的定义] 栈(stack)是限定仅在表尾进行插入和删除操作的线性表. 栈又称为后进先出(Last In First Out)线性表,简称LIFO结构. (PS:定义中的表尾是指 栈顶!) [几个关 ...
- D-OJ刷题日记:栈的顺序存储结构与操作 题目编号:457
请你定义一个顺序栈,可以对顺序栈进行"将某个元素入栈"."弹出栈顶元素"."取栈顶元素(不删除)"."判断栈是否为空". ...
- Android应用程序目录结构框架搭建
此文章转载至http://blog.csdn.net/sun4733/article/details/40892419?utm_source=tuicool&utm_medium=referr ...
- 栈的顺序存储及实现(二)
栈的介绍 栈(stack)是限定仅在表尾进行插入和删除操作的线性表. 我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈.栈又被称为后进先出(L ...
- 循环队列 - 顺序存储结构
队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表.是一种先进先出的线性表(FIFO).允许插入的一端称为队尾,允许删除的一端称为队头.我们在<栈的顺序存储结构> ...
- c语言实现顺序存储程序,线性表的顺序存储结构动态态分配C语言实现
线性表的顺序存储结构动态态分配C语言实现 线性表的顺序存储结构动态态分配C语言实现 初始化执行期间通过malloc函数为数组申请空间,程序运行期间若空间不够可通过realloc函数在保留原存储值的前提 ...
最新文章
- python生成简单的FTP弱口令扫描
- 网线的制作方法和千兆网线的施工注意事项
- java之泛型_java之泛型
- 因为应用程序的并行配置不正确 sxstrace
- uWSGI+Nginx安装、配置
- Unity使用独立配置文件的方法
- LINUX环境搭建:安装中文定制版UBUNTU 10.10
- 阿里P8架构师谈:高并发网站的监控系统选型、比较、核心监控指标
- 单一窗口关区备案_深圳跨境电商企业进出口备案,赶紧码下学习
- Java效率工具之Swagger2
- 加载resnet18的代码
- 1000道Python题库系列分享八(29道)
- 2022年中国工业机器人市场现状研究分析与发展前景预测报告
- 外卖cps美团饿了么小程序 每天领取外卖优惠券 下单直接抵扣现金(外卖cps返利分销小程序源码)
- 粒子群算法及其改进算法
- 彻底解决win10黑屏,睡眠后无法唤醒(Intel平台)
- arduino串口点灯
- BZOJ 1455: 罗马游戏( 配对堆 + 并查集 )
- 销售需要具备的8种能力
- 尚硅谷大数据视频_Shell视频教程
热门文章
- python从入门到精通-小白如何系统学习python,从入门到精通?
- 简单python脚本实例-python脚本例子
- python基础代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)
- python与excel-python3与Excel的完美结合
- python入门经典电子书-python从入门到精通pdf
- 科大讯飞输入法解锁高效语音输入
- ES6 迭代器与生成器(非常详细、容易理解)
- 查看从库mysql同步错误日志_常见MySQL同步错误恢复方法
- java_interface的用法_Java注释@interface的用法
- java swing对话框_Java开发笔记(一百三十五)Swing的文件对话框