数据结构第十一天(栈)

目录

前言

概述

源码:

主函数:

运行结果:

​编辑


前言

今天简单的实现了栈,主要还是指针操作,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.hqwc.cn/news/460668.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.1 Verilog 连续赋值

关键词&#xff1a;assign&#xff0c; 全加器 连续赋值语句是 Verilog 数据流建模的基本语句&#xff0c;用于对 wire 型变量进行赋值。&#xff1a; 格式如下 assign LHS_target RHS_expression &#xff1b; LHS&#xff08;left hand side&#xff09; 指赋值操作…

Matplotlib绘制炫酷散点图:从二维到三维,再到散点图矩阵的完整指南与实战【第58篇—python:Matplotlib绘制炫酷散点图】

文章目录 Matplotlib绘制炫酷散点图&#xff1a;二维、三维和散点图矩阵的参数说明与实战引言二维散点图三维散点图散点图矩阵二维散点图进阶&#xff1a;辅助线、注释和子图三维散点图进阶&#xff1a;动画效果和交互性散点图矩阵进阶&#xff1a;调整样式和添加密度图总结与展…

【Web】Spring rce CVE-2022-22965漏洞复现学习笔记

目录 原理概览 漏洞简述 Tomcat AccessLogValve 和 access_log 例题: 原理概览 spring框架在传参的时候会与对应实体类自动参数绑定&#xff0c;通过“.”还可以访问对应实体类的引用类型变量。使用getClass方法&#xff0c;通过反射机制最终获取tomcat的日志配置成员属性…

熔断机制解析:如何用Hystrix保障微服务的稳定性

微服务与系统的弹性设计 大家好,我是小黑,在讲Hystrix之前,咱们得先聊聊微服务架构。想象一下,你把一个大型应用拆成一堆小应用,每个都负责一部分功能,这就是微服务。这样做的好处是显而易见的,更新快,容错性强,每个服务可以独立部署,挺美的对吧?但是,问题也随之而…

Jedis与SpringBoot整合redis

一、Jedis 1、使用Java来操作Redis Jedis是Redis官方推荐使用的Java连接redis的客户端。 导入依赖 <!--导入jredis的包--> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</ver…

爪哇部落算法组2024新生赛热身赛题解

第一题&#xff08;签到&#xff09;&#xff1a; 1、题意&#xff1a; 2、题解: 我们观察到happynewyear的长度是12个字符&#xff0c;我们直接从前往后遍历0到n - 12的位置&#xff08;这里索引从0开始&#xff09;&#xff0c;使用C的substr()函数找到以i开头的长度为12的字…

Redis中内存淘汰算法实现

Redis中内存淘汰算法实现 Redis的maxmemory支持的内存淘汰机制使得其成为一种有效的缓存方案&#xff0c;成为memcached的有效替代方案。 当内存达到maxmemory后&#xff0c;Redis会按照maxmemory-policy启动淘汰策略。 Redis 3.0中已有淘汰机制&#xff1a; noevictionall…

Kubernetes基础(十六)-pod QoS等级

1 Pod Qos等级 一个节点不一定能提供所有pod所指定的资源limits之和那么多的资源量。 假设有两个pod,pod A使用了节点内存的 90%,pod B突然需要比之前更多的内存&#xff0c;这时节点无法提供足量内存&#xff0c;哪个容器将被杀掉呢&#xff1f;应该是pod B吗&#xff1f;因…

Office2013下载安装教程,保姆级教程,附安装包和工具

前言 Microsoft Office是由Microsoft(微软)公司开发的一套基于 Windows 操作系统的办公软件套装。常用组件有 Word、Excel、PowerPoint、Access、Outlook等。 准备工作 1、Win7 及以上系统 2、提前准备好 Office 2013 安装包 安装步骤 1.鼠标右击【Office2013(64bit)】压缩…

掌握Vue,开启你的前端开发之路!

介绍&#xff1a;Vue.js是一个构建数据驱动的Web应用的渐进式框架&#xff0c;它以简洁和轻量级著称。 首先&#xff0c;Vue.js的核心在于其视图层&#xff0c;它允许开发者通过简单的模板语法将数据渲染进DOM&#xff08;文档对象模型&#xff09;。以下是Vue.js的几个重要特点…

爬虫工作量由小到大的思维转变---<第四十五章 Scrapyd 关于gerapy遇到问题>

前言: 本章主要是解决一些gerapy遇到的问题,会持续更新这篇! 正文: 问题1: 1400 - build.py - gerapy.server.core.build - 78 - build - error occurred (1, [E:\\项目文件名\\venv\\Scripts\\python.exe, setup.py, clean, -a, bdist_uberegg, -d, C:\\Users\\Administrat…

[linux]:匿名管道和命名管道(什么是管道,怎么创建管道(函数),匿名管道和命名管道的区别,代码例子)

目录 一、匿名管道 1.什么是管道&#xff1f;什么是匿名管道&#xff1f; 2.怎么创建匿名管道&#xff08;函数&#xff09; 3.匿名管道的4种情况 4.匿名管道有5种特性 5.怎么使用匿名管道&#xff1f;匿名管道有什么用&#xff1f;&#xff08;例子&#xff09; 二、命名…