数据结构 ----- 栈(代码)

2023-11-09

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define ERROR 0
#define OK 1 
#define STACKSIZE 10;              //存储空间分配增量
#define STACK_INIT_SIZE 100;    //存储空间初始分配量

typedef int ElemType;
typedef int Status;

typedef struct
{
	ElemType* base;    //栈底
	ElemType* top;     //栈顶
	int stacksize;          //当前已分配的空间
}SqStack;

//初始化一个栈
Status initStack(SqStack &S)
{
	S.base = (ElemType *)malloc(100 * sizeof(ElemType));
	if (!S.base)
	{
		exit(0);
	}
	S.top = S.base;
	S.stacksize = 100;
	return OK;

}

//入栈操作
Status Push(SqStack& S, ElemType e)
{
	if (S.top - S.base >= S.stacksize)   //如果栈满就追加空间
	{                           //新增内存空间
		S.base = (ElemType*)realloc(S.base, (S.stacksize + 10) * sizeof(ElemType));
		if (!S.base) exit(0);
		S.top = S.base + S.stacksize;
		S.stacksize += 10;
	}
	*S.top++ = e;
	return OK;
}

//出栈操作
Status Pop(SqStack& S, ElemType &e)
{
	if (S.top == S.base) return ERROR;
	e = *--S.top;
	return OK;
}

//展示栈所有元素
Status Show(SqStack &S)
{
	int e;
	while (S.top != S.base)
	{
		Pop(S, e);
		printf("元素有%d\n", e);
	}
	return OK;
}




int main()
{
	SqStack S;
	int e;
	initStack(S);
	Push(S, 1);
	Push(S, 2);
	Push(S, 3);
	Push(S, 4);
	Push(S, 5);
	Push(S, 6);
	Pop(S, e);
	printf("%d\n", e);
	Pop(S, e);
	printf("%d\n", e);
	Show(S);
}

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据结构 ----- 栈(代码) 的相关文章

  • 量化策略——准备4 python量化因子测算&绘图

    文章目录 因子测算框架 1 预处理股票数据 2 指标测算 3 测算结果整理 4 结果绘图 量化因子的测算通常都是模拟交易 计算各种指标 其中 测算需要用到的第三方库 numpy pandas talib 绘图需要用到的第三方库 matplo
  • mybatis 当表字段与实体类字段不一样的时候的解决方案

    参考文档 https www cnblogs com nananana p 8597466 html https www cnblogs com wangjunwei p 11334718 html 数据库的字段 对应的实体类 方案一 在X
  • 新手用不起,高手看不上系列之--MVVMHabit

    基于谷歌最新AAC架构 MVVM设计模式的一套快速开发库 整合Okhttp RxJava Retrofit Glide等主流模块 满足日常开发需求 使用该框架可以快速开发一个健壮 易维护的Android应用 更新日志 v3 0 0 2018
  • 【12月比赛合集】42场可报名的数据挖掘奖金赛,任君挑选!

    CompHub 实时聚合多平台的数据类 Kaggle 天池 和OJ类 Leetcode 牛客 比赛 本账号同时会推送最新的比赛消息 欢迎关注 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考 以比赛官网为准 目录
  • web服务器安全部署文档,安全部署企业WEB服务器(4页)-原创力文档

    安全部署企业 WEB 服务器 摘 要 WEB 服务器是 Intranet 企业 内部网 网站的核心 其中的数据资料非常重要 安全部署WEB 服务器是企业面临的一项重要工作 系统安装 安全策略和 IIS 安全策略 对企业 WEB 服务器安全
  • javacv-ffmpeg播放视频里的音频

    在javacv封装的ffmpeg包中 可以通过FFMpegFrameGrabber捕获image数据和sample数据 而且捕获的都是译码后的 下面通过一个Demo来实现如何处理sample数据 1 首先实例化一个FFMpegFrameGr
  • Basic Level 1037 在霍格沃茨找零钱 (20分)

    题目 如果你是哈利 波特迷 你会知道魔法世界有它自己的货币系统 就如海格告诉哈利的 十七个银西可 Sickle 兑一个加隆 Galleon 二十九个纳特 Knut 兑一个西可 很容易 现在 给定哈利应付的价钱 P 和他实付的钱 A 你的任务
  • Hexo Theme NexT 主题个性化配置最佳实践

    一般情况下 当我们在使用 Hexo 的 NexT 主题时 都希望把博客改造成自己喜欢的风格 NexT 主题经过不断的迭代积累 目前提供了非常丰富的配置来满足使用者的个性化需求 经过一段时间的摸索 我总结了一些有关 NexT 主题配置的最佳实
  • 深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解

    因为工作原因 项目中经常遇到目标检测的任务 因此对目标检测算法会经常使用和关注 比如Yolov3 Yolov4算法 Yolov5算法 Yolox算法 当然 实际项目中很多的第一步 也都是先进行目标检测任务 比如人脸识别 多目标追踪 REID
  • Java对象导论,什么是对象

    在think in Java一书中这样表述对象 1 万物皆为对象 将对象视为奇特的变量 它可以存储数据 除此之外 你还可以要求它在自身上执行操作 理论上讲 你可以抽取待求解问题的任何概念化构建 狗 建筑物 服务 等 将其表示为程序中的对象
  • leaflet中fitBounds方法带来的问题

    这个方法用leaflet的同学都用过 可当没有图层的时候添加一个图层用这个方法定位就会出现不能再缩小的问题 第一个图层建议用setview方法 这样不会增加特殊属性minzoom
  • 优化算法——全局灵敏度分析算法(PAWN )(Matlab代码实现)

    欢迎来到本博客 本文目录如下 目录 1 概述 2 使基于SWAT 的高参数模型的 PAWN 和 Sobol 敏感性分析方法的比较 3 Matlab代码实现 1 概述 大量参数是复杂环境模型的主要问题 因为它限制了它们的应用 因此 旨在识别模
  • 华为ICT大赛实践赛备赛经验总结

    华为ICT大赛备赛经验总结 1 比赛形式 去年的省赛是个人赛形式 只有笔试 满分1000分 题目类型为 判断正误 单选 多选 省赛是考试的形式 最后取全校前三作为学校的代表队 然后和其他学校的代表队进行比较 分数最高的进入到国赛 国赛有实践
  • ES返回值数量超过10000条解决方式

    现象 ES默认返回数据量为10000条 当分页的from超过10000条的时候 es就会如下报错 Result window is too large from size must be less than or equal to 1000
  • 【JavaScript】关于手机中的触摸手势操作实现过程详解

    这里实现触摸手势操作的有四个基本方向 上 下 左 右 用javascript语言编写 可以参考下 笔者TA远方在一个文件名为gesture js写了 定义触摸操作中的所有手势 一共8个总方向 包括四个基本方向 还有一个点击 代码如下 con
  • 注解方式开发Servlet程序

    一 注解方式开发Servlet程序 package cn tedu servlet import javax servlet ServletException import javax servlet annotation WebServl
  • Spring MVC中如何使用forward进行请求转发呢?

    转自 Spring MVC中如何使用forward进行请求转发呢 下文讲述Spring MVC进行请求转发的2种方式简介说明 如下所示 Spring MVC种forward请求是一种服务器端请求方式 它无需通过客户端 可以提高系统的转发速度
  • linux sort uniq -c

    文档编辑 sort 功能说明 将文本文件内容加以排序 语 法 sort bcdfimMnr o lt 输出文件 gt t lt 分隔字符 gt lt 起始栏位 gt lt 结束栏位 gt help verison 文件 补充说明 sort可

随机推荐