栈的顺序存储结构

数组模拟

#define MAX_SIZE 1024
#define SEQSTACK_TRUE 1
#define SEQSTACK_FALSE 0

结构体

typedef struct SEQSTACK{void* data[MAX_SIZE];int size;
}Seqstack;
  1. 初始化栈
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;
}
  1. 入栈
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++;
}
  1. 返回栈顶元素
void* Top_Seqstack(Seqstack* stack){if(stack==NULL){return;}if(stack->size==0){return NULL; } return stack->data[stack->size-1];}
  1. 出栈
void Pop_Seqstack(Seqstack* stack){if(stack==NULL){return;}if(stack->size==0){return;}stack->data[stack->size-1]==NULL;  //置空stack->size--;
}
  1. 判断是否为空
int IsEmpty(Seqstack* stack){if(stack==NULL){return -1;}if(stack->size==0){return SEQSTACK_TRUE;}return SEQSTACK_FALSE;
}
  1. 返回栈中元素个数
int Size_Seqstack(Seqstack* stack){return stack_size;
}
  1. 清空栈
void Clear_Seqstack(Seqstack* stack){if(stack==NULL){return;}for(int i=0;i<stack->size;i++){stack->data[i]=NULL;}stack->size=0;
}
  1. 销毁
void Free_Seqstack(Seqstack* stack){if(stack==NULL){return;}free(stack);
}

栈的顺序存储结构框架搭建相关推荐

  1. 栈的顺序存储结构、链式存储架构及其实现

    顺序栈和链式栈的时间复杂度均为O(1), 因此唯一可以比较的是空间性能.初始时顺序栈必须开辟一个固定的长度内存,所以存在可存储元素个数限制和浪费空间的问题.链式栈没有栈满的问题,只有当内存空间用完才会 ...

  2. 栈的顺序存储结构(顺序栈)

    栈的顺序存储结构 1.顺序栈的存储结构 #define MAXSIZE 100 //顺序栈存储空间的初始分配 typedef struct{SElemType *base; //栈底指针SElemTy ...

  3. 数据结构——栈的顺序存储结构

    一.栈的概念 栈是一种操作受限的,只允许一端进行插入和删除的线性表,允许进行操作的一端叫做栈顶(top),另一端为栈底(bottom),插入操作为入栈或进栈,删除操作称为出栈或退栈. 二.栈的顺序存储 ...

  4. 3.1_栈_顺序存储结构(数组形式)

    [栈的定义] 栈(stack)是限定仅在表尾进行插入和删除操作的线性表. 栈又称为后进先出(Last In First Out)线性表,简称LIFO结构. (PS:定义中的表尾是指 栈顶!) [几个关 ...

  5. D-OJ刷题日记:栈的顺序存储结构与操作 题目编号:457

    请你定义一个顺序栈,可以对顺序栈进行"将某个元素入栈"."弹出栈顶元素"."取栈顶元素(不删除)"."判断栈是否为空". ...

  6. Android应用程序目录结构框架搭建

    此文章转载至http://blog.csdn.net/sun4733/article/details/40892419?utm_source=tuicool&utm_medium=referr ...

  7. 栈的顺序存储及实现(二)

    栈的介绍 栈(stack)是限定仅在表尾进行插入和删除操作的线性表. 我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈.栈又被称为后进先出(L ...

  8. 循环队列 - 顺序存储结构

    队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表.是一种先进先出的线性表(FIFO).允许插入的一端称为队尾,允许删除的一端称为队头.我们在<栈的顺序存储结构> ...

  9. c语言实现顺序存储程序,线性表的顺序存储结构动态态分配C语言实现

    线性表的顺序存储结构动态态分配C语言实现 线性表的顺序存储结构动态态分配C语言实现 初始化执行期间通过malloc函数为数组申请空间,程序运行期间若空间不够可通过realloc函数在保留原存储值的前提 ...

最新文章

  1. python生成简单的FTP弱口令扫描
  2. 网线的制作方法和千兆网线的施工注意事项
  3. java之泛型_java之泛型
  4. 因为应用程序的并行配置不正确 sxstrace
  5. uWSGI+Nginx安装、配置
  6. Unity使用独立配置文件的方法
  7. LINUX环境搭建:安装中文定制版UBUNTU 10.10
  8. 阿里P8架构师谈:高并发网站的监控系统选型、比较、核心监控指标
  9. 单一窗口关区备案_深圳跨境电商企业进出口备案,赶紧码下学习
  10. Java效率工具之Swagger2
  11. 加载resnet18的代码
  12. 1000道Python题库系列分享八(29道)
  13. 2022年中国工业机器人市场现状研究分析与发展前景预测报告
  14. 外卖cps美团饿了么小程序 每天领取外卖优惠券 下单直接抵扣现金(外卖cps返利分销小程序源码)
  15. 粒子群算法及其改进算法
  16. 彻底解决win10黑屏,睡眠后无法唤醒(Intel平台)
  17. arduino串口点灯
  18. BZOJ 1455: 罗马游戏( 配对堆 + 并查集 )
  19. 销售需要具备的8种能力
  20. 尚硅谷大数据视频_Shell视频教程

热门文章

  1. python从入门到精通-小白如何系统学习python,从入门到精通?
  2. 简单python脚本实例-python脚本例子
  3. python基础代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)
  4. python与excel-python3与Excel的完美结合
  5. python入门经典电子书-python从入门到精通pdf
  6. 科大讯飞输入法解锁高效语音输入
  7. ES6 迭代器与生成器(非常详细、容易理解)
  8. 查看从库mysql同步错误日志_常见MySQL同步错误恢复方法
  9. java_interface的用法_Java注释@interface的用法
  10. java swing对话框_Java开发笔记(一百三十五)Swing的文件对话框