栈简介:

(stack)是动态集合。 是 后进先出(last-in, fist-out, LIFO)策略,有压入(BUSH)和弹出(POP)操作

1、宏定义与头文件

#include<stdio.h>
#define TURE 1
#define FALSE 0
#define length 10

2、定义结构体


/*top:指向栈新加入的元素,S为栈,length为栈的最大长度*/ typedef struct {int *top;int S[length];
} STACK ;

3、检查栈

/*** @brief 检查栈是否为空 * * @param S :对应的栈 * * @return 空为返回1,非空返回0 **/
int STACK_EMPTY(STACK S_2)
{if(*S_2.top == 0)return TURE;elsereturn FALSE;
}

4、压入(PUSH)

/*** @brief 给对应的栈压入一个元素 * * @param S * * @param x :将压进去的元素 **/
void PUSH(STACK S_2, int x)
{*S_2.top = *S_2.top + 1;S_2.S[*S_2.top] = x;
}

5、弹出(POP)

/*** @brief 弹出栈顶的元素,返回值为栈顶的元素 **/
int POP(STACK S_2)
{if(STACK_EMPTY(S_2)){printf("underflow");}else{*S_2.top = *S_2.top - 1;return S_2.S[*S_2.top + 1];}
}

实现程序

int main(void)
{STACK S1;int i;*S1.top = 9;for(i = 0;i<=9;i++){S1.S[i] = i;}i = POP(S1);printf("%d\n",i);i = 3;PUSH(S1,i);i = POP(S1);printf("%d\n",i);
}``

《肥鸟笔记--基础数据结构》一、栈相关推荐

  1. C学习笔记-基础数据结构与算法

    数据结构 数据(data)是对客观事物符号表示,在计算机中是指所有能输入的计算机并被计算机程序处理的数据总称. 数据元素(data element)是数据的基本单位,在计算机中通常做为一个整体进行处理 ...

  2. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  3. 【《Redis深度历险》读书笔记(1)】基础:万丈高楼平地起 ——Redis 5种基础数据结构

    [时间]2021.11.16 [题目][<Redis深度历险>读书笔记(1)]基础:万丈高楼平地起 --Redis 基础数据结构 本栏目是<Redis深度历险:核心原理和应用实践&g ...

  4. 2022天勤考研数据结构笔记 第3章 栈和队列

    2022天勤考研数据结构笔记 第3章 栈和队列(更新中) 第3章 栈和队列 3.1 结构体定义 3.2 顺序栈 3.3 链栈 3.4 栈的应用 3.5 顺序队 3.6 链队 第3章 栈和队列 栈和队列 ...

  5. Java基础加强重温_05:Iterator迭代器、增强for循环、集合综合案例-斗地主、数据结构(栈、队列、数组、链表、红黑树)、List接口、Set接口

    摘要: Java基础加强重温_05: Iterator迭代器(指针跟踪元素). 增强for循环(格式.底层). 集合综合案例-斗地主(代码规范抽取代码,集合元素打乱). 数据结构[栈(先进后出,子弹夹 ...

  6. c++怎么实现数字数组的删除数字_C/C++数据结构:栈结构解析,最简单解析,让你一遍就会...

    上一章节针对于C语言最基本的数据结构链式结构体做了解析,不清楚的可以回顾一下.本章节主要针对于C语言的基础数据结构栈做以解析. 数据结构之栈 栈(stack)又名堆栈,它是一种运算受限的线性表.限定仅 ...

  7. 小猪猪C++笔记基础篇(四)数组、指针、vector、迭代器

    小猪猪C++笔记基础篇(四) 关键词:数组,Vector. 一.数组与指针 数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据.例如:int a[10],意思就是从a开始 ...

  8. PHP自学笔记(基础语法篇)

    本文章是我在b站上自学PHP的学习笔记,如果有错误,欢迎大家改正,谢谢. 文章目录 1. PHP介绍 1.1 什么是PHP 2. 认识PHP脚本程序 2.1 PHP语言标记(四种定界符) 2.2 结束 ...

  9. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

最新文章

  1. 【linux】Valgrind工具集详解(七):Memcheck(内存错误检测器)
  2. php学数据结构,PHP 程序员学数据结构与算法之《栈》
  3. 云拨测助力节卡机器人 全面优化海外网站性能
  4. java 复制剪贴板_java_swing复制粘贴、剪贴板
  5. 750px设计稿处理方式
  6. RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的?
  7. 如何在新版的gitbook上写自己的书
  8. 怀旧服最新服务器塞卡尔,魔兽世界怀旧服:10个至今未开门的服务器!圣光服进度刚到20%!...
  9. matlab 跳棋,MATLAB画跳棋棋盘
  10. freerdp linux下连接windows远程终端工具
  11. 缺钱的特斯拉,是否在走向“乐视化”?
  12. python获取某个模块文件的路径
  13. java bigdecimal取余_BigDecimal求余操作
  14. 《企业IT架构转型之道》读书笔记
  15. 图片右侧加文字html完整代码,怎么用css在图片右下方添加文字
  16. json的格式是什么?
  17. Ubuntu出现“dpkg: 依赖关系问题使得libbsd0:i386的配置工作不能继续”错误
  18. 面对疫情,健身俱乐部管理者最应该做的6件事
  19. BetterTouchTool使用指南——TouchBar篇
  20. NPV(净现值)是什么以及其对应的概念及公式是什么?使用Python计算NPV是如何实现的?

热门文章

  1. iview 必填select加filterable可填写,边框被挡住
  2. (四十二):Aligning Linguistic Words and Visual Semantic Units for Image Captioning
  3. jTemplates异步加载实现与HTML5 video视频开发
  4. 不对齐 谷歌浏览器_CHROME谷歌浏览器中文两端对齐
  5. vi设计中辅助图形的形式
  6. Mac删除默认美国输入法
  7. 什么是骨传导耳机?骨传导耳机好不好,看完这些你就知道了!
  8. 新概念2背诵500遍后的感受
  9. 基于单片机语音智能导盲仪仿真设计-毕设课设资料
  10. LeetCode160.相交链表