数据结构第十一天(栈)

news2024/12/29 16:29:25

目录

前言

概述

源码:

主函数:

运行结果:

​编辑


前言

今天简单的实现了栈,主要还是指针操作,soeasy!

友友们如果想存储其他内容,只需修改结构体中的内容即可。

哈哈,要是感觉不错,动动发财的小手,点个赞,添个收藏,加个关注吧😀😀😀

概述

栈(Stack)遵循先进后出(LIFO,Last-In-First-Out)的原则。类比现实生活中的栈,我们可以将栈想象成一叠盘子,只能从顶部放入或取出盘子。

栈有具有入栈(Push)和出栈(Pop)两个基本操作:

  1. 入栈(Push):将元素放入栈的顶部。
  2. 出栈(Pop):从栈的顶部取出元素,并将其从栈中删除。

栈通常有一个指针,指向栈顶元素的位置。初始时,栈为空,指针指向空位置。进行入栈操作时,指针向上移动,指向新入栈的元素;进行出栈操作时,指针向下移动,指向新的栈顶元素。

源码:

class STACK
{
	struct data
	{
		int num;
		struct data* pre, *bk;
	};
	struct data* top, *button;
public:
	STACK(){
		top = button = (struct data*)malloc(sizeof(struct data));
		button->pre = nullptr;
	
	}
	~STACK(){}
	void push(int data);
	int pop();
};
void  STACK::push(int data){
	
	top->bk = (struct data*)malloc(sizeof(struct data));
	top->bk->pre = top;
	top = top->bk;
	top->num = data;
	return;
}
int STACK::pop()
{
	if (top != button)
	{
		button->num = top->num;
		top = top->pre;
		free(top->bk);
		return button->num;
	}
	else
	{
		return -9999999;
	}
}

主函数:

#include<stdio.h>
#include<iostream>
using namespace std;
#include"dataStructAPI.h"
#include"sort.h"
#include<windows.h>
int main()
{

STACK stack;
    for (int i = 1; i < 10; ++i)
    {
        stack.push(i);
    }
    cout << "输出结果:";
    for (int i = 1; i < 10; ++i)
    {
        cout << stack.pop() << " ";
    }
    stack.~STACK();
    cout  << endl;
    system("pause");
    return 0;
}

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1437615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3D室内虚拟灭火体验为预防火灾提供全新方案

室内火灾常见于充电器未拔、电动车、油锅起火及煤气泄露等原因&#xff0c;由于室内空间小、易燃物多&#xff0c;因此极易造成较大的人员财产损失&#xff0c;3D仿真还原技术、通过1&#xff1a;1模拟还原火灾发生全过程&#xff0c;火灾VR安全培训提供全方位、真实感强的模拟…

【01】判断素数/质数(C语言)

目录 &#xff08;1&#xff09;素数特点&#xff1a;只能被1和本身整除 &#xff08;2&#xff09;代码如下&#xff1a; &#xff08;3&#xff09;运行结果如下 ​编辑 &#xff08;4&#xff09;函数引申 &#xff08;1&#xff09;素数特点&#xff1a;只能被1和本身…

基于AST实现一键自动提取替换国际化文案

背景&#xff1a;在调研 formatjs/cli 使用&#xff08;使用 formatjs/cli 进行国际化文案自动提取 &#xff09;过程中&#xff0c;发现有以下需求formatjs/cli 无法满足&#xff1a; id 需要一定的语义化&#xff1b; defaultMessage和Id不能直接hash转换&#xff1b; 需要…

2.6学习总结

2.6 1.蓝桥公园 2.路径 3.打印路径 4.【模板】Floyd Floyd算法&#xff1a; 是一种多源的最短路径算法&#xff0c;经过一次计算可以得到任意两个点之间的最短路径。 这种算法是基于动态规划的思想&#xff1a; m[i][j]表示从i到j这条边的距离&#xff0c;dp[k][i][j]表示从…

【代码随想录24】93.复原 IP 地址 78.子集 90.子集II

目录 93.复原IP地址题目描述参考代码 78.子集题目描述参考代码 90.子集II题目描述参考代码 93.复原IP地址 题目描述 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如…

【iOS】——使用ZXingObjC库实现条形码识别并请求信息

文章目录 前言一、实现步骤二、扫描界面和扫描框的样式1.扫描界面2.扫描框 三、实现步骤 前言 ZXing库是一个专门用来解析多种二维码和条形码&#xff08;包括包括 QR Code、Aztec Code、UPC、EAN、Code 39、Code 128等&#xff09;的开源性质的处理库&#xff0c;而ZingObjC库…

开源微服务平台框架的特点是什么?

借助什么平台的力量&#xff0c;可以让企业实现高效率的流程化办公&#xff1f;低代码技术平台是近些年来较为流行的平台产品&#xff0c;可以帮助很多行业进入流程化办公新时代&#xff0c;做好数据管理工作&#xff0c;从而提升企业市场竞争力。流辰信息专业研发低代码技术平…

点云transformer算法: FlatFormer 论文阅读笔记

代码&#xff1a;https://github.com/mit-han-lab/flatformer论文&#xff1a;https://arxiv.org/abs/2301.08739[FlatFormer.pdf] Flatformer是对点云检测中的 backbone3d部分的改进工作&#xff0c;主要在探究怎么高效的对点云应用transformer 具体的工作如下&#xff1a;一…

【C语言——打印乘法口诀表】

乘法表&#xff1a; 我们可以定义一个i控制行的变化&#xff0c;外加看上图的表得知我们需要用到循环结构&#xff0c;i是行需要不停的加加&#xff0c;因此&#xff0c;for循环比较好用&#xff0c;可以用两个嵌套的循环&#xff0c;外层循环即用到的i表示的是每一行的打印&am…

泰雷兹和Quantinuum推出入门套件,帮助企业为未来的后量子加密变革做好准备

•新的解决方案——PQC入门套件(PQC Starter Kit)为用户提供了一种快速、简便的方法&#xff0c;用于测试和衡量其在后量子时代防范量子计算攻击的准备情况 •随着量子计算逐渐成熟&#xff0c;企业为后量子时代做好准备并培养加密灵活性&#xff0c;对于降低数据泄露风险至关重…

BurpSuite测试上传文件xss漏洞教程

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;https://zhangxiaofan.blog.csdn.net/article/details/136061771 目录 目录 1.下载地址 Loader Keygen下载 Loader Keygen使用 2.Proxy SwitchyOmega代理 3.文件xss漏洞测试 启动…

游戏服务器多少钱一台?腾讯云32元,阿里云26元

游戏服务器租用多少钱一年&#xff1f;1个月游戏服务器费用多少&#xff1f;阿里云游戏服务器26元1个月、腾讯云游戏服务器32元&#xff0c;游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选&#xff0c;可以选择轻量应用服务器和云服务器&#xff0c;阿腾云atengyu…

Jina AI 请回答 2023

年 度 回 顾 - Jina AI - 2023 年&#xff0c;正如它所对应的生肖“兔”&#xff0c;充满活力和智慧。AI 技术在全球范围内的颠覆性发展&#xff0c;让 2023 年成为大家公认的人工智能元年。作为从四年前成立起&#xff0c;就专注于多模态 AI 技术研发的前沿科技公司&#xff0…

年货大数据(年货节数据/电商行业数据):龙年再添两个黑马食品饮料品类,增长11倍!

年货零食三大件&#xff1a;牛奶、糖果和炒货。今年再多两大件&#xff0c;礼品卡券和腊味。 根据鲸参谋数据显示&#xff0c;今年坚果炒货、糖果、牛奶乳品、饮料等品类依然是长期的年货热门品类。1月前三周&#xff0c;牛奶乳品销量环比增长68%&#xff0c;销售额环比增长55…

【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (上篇)

在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 &#xff08;上篇&#xff09; 项目介绍 YOLOv5 是革命性的 "单阶段"对象检测模型的第五次迭代&#xff0c;旨在实时提供高速、高精度的结果&#xff0c;是世界上最受欢迎的视觉人工智能模型&#xff0c;代表了Ult…

《Git 简易速速上手小册》第1章:Git 基础(2024 最新版)

文章目录 1.1 Git 简介&#xff1a;版本控制的演变1.1.1 基础知识讲解1.1.2 重点案例&#xff1a;协作开发流程优化案例&#xff1a;功能开发与分支策略 1.1.3 拓展案例 1&#xff1a;代码审查与合并1.1.4 拓展案例 2&#xff1a;冲突解决 1.2 安装和配置 Git&#xff1a;首次设…

一文搞懂MOS管!

MOS管 1.原理 金属-氧化物半导体场效应晶体管 G&#xff1a;gate 栅极&#xff1b;S&#xff1a;source 源极&#xff1b;D&#xff1a;drain 漏极 P沟道型和N沟道型管&#xff08;箭头指向G极的是N沟道&#xff09; 增强型管&#xff1a;栅极-源极电压 Vgs 为零时Ids电流…

JavaScript基础第三天

JavaScript 基础第三天 今天我们学习for循环、while循环、终止循环和无限循环。 1. for 循环 1.1. 语法 // 1. 语法格式 // for(起始值; 结束条件; 累加器) { // // 要重复执行的代码 // }1.2. 示例代码 let sum 0; for (let i 0; i < 100; i) {sum i; } alert(&q…

Facebook的数字安全使命:社交平台的责任

在数字化的时代&#xff0c;社交媒体已经成为人们生活不可或缺的一部分&#xff0c;而数字安全问题也随之成为社交平台亟待解决的挑战。作为全球最大的社交媒体平台之一&#xff0c;Facebook不仅肩负着连接世界的使命&#xff0c;更担负着保障用户数字安全的责任。本文将深入研…

基于 SpringBoot 和 Vue.js 的权限管理系统部署教程

大家后&#xff0c;我是 jonssonyan 在上一篇文章我介绍了我的新项目——基于 SpringBoot 和 Vue.js 的权限管理系统&#xff0c;本文主要介绍该系统的部署 部署教程 这里使用 Docker 进行部署&#xff0c;Docker 基于容器技术&#xff0c;它可以占用更少的资源&#xff0c;…