首页 > 其他分享 >栈的顺序存储代码

栈的顺序存储代码

时间:2025-01-20 10:56:39浏览次数:3  
标签:arr seqStack return elemType 代码 顺序存储 stack top

#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
#define elemType int
#define maxSize 50
typedef struct seqStack {
    elemType arr[maxSize];
    int top;
}seqStack;

void initStack(seqStack* stack) {
    for (int i = 0;i < maxSize;i++) {
        stack->arr[i] = 0;
    }
    stack->top = -1;
}

bool pushStack(seqStack* stack, elemType data) {
    if (stack->top+1 == maxSize) {
        return false;
    }
    stack->arr[++stack->top] = data;
    return true;
}

bool popStack(seqStack* stack, elemType* dataReturn) {
    if (stack->top == -1) {
        return false;
    }
    *dataReturn = stack->arr[stack->top--];
    return true;
}

bool getTopStack(seqStack* stack, elemType* dataReturn) {
    if (stack->top == -1) {
        return false;
    }
    *dataReturn = stack->arr[stack->top];
    return true;
}

int main() {
    seqStack s;
    initStack(&s);
    for (int i = 0;i < 50;i += 2) {
        pushStack(&s, i);
    }
    elemType data;
    while (popStack(&s, &data)) {
        printf("%d\n", data);
    }
    return 0;
}

标签:arr,seqStack,return,elemType,代码,顺序存储,stack,top
From: https://blog.csdn.net/2401_84219815/article/details/145257929

相关文章

  • IDEA如何将代码进行注释
    前言大家好,我是小徐啊。我们在使用IDEA开发Java应用的时候,一般都是需要写注释的,这些注释帮助我们和别人更好的理解代码的含义,可以说是必不可少的。在使用IDEA开发时,其实是可以快捷的进行代码注释的,而不用手动去注释,那么IDEA该如何进行代码注释呢?如何进行代码注释首先,打开一个我......
  • 代码随想录:二叉搜索时的插入
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • 代码随想录:将有序数组转化为二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • 代码随想录:修剪二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*......
  • 代码随想录:删除二叉搜索树中的节点
    由于涉及到树的结构变化,用递归写比较简单,竟然一次跑通了/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(int......
  • 代码随想录:把二叉搜索树转化为累加树
    相当于将数组从右到左遍历,下一个数加上一个数,二叉搜索树中序遍历(左中右)为顺序,右中左则为倒叙/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),rig......
  • 关于线性筛Euler函数的详细证明&代码
    引言:由于dsfz的集训老师讲的跟**一样太快了,蒟蒻前去听了洛谷网校@disangan233大佬的讲解,在此重构线性筛Euler函数的证明及代码。关于Euler函数\(Euler\)函数,同时被称为欧拉函数,定义:\(\varphi(n)\)表示\(\len\)且与\(n\)互质的数的个数我们规定:\(\varphi(1)=1\)Eu......
  • 爬虫实战带上代码讲解(以爬取好大夫为例)
    前言:我感觉之前讲的爬虫,太纸面化了,需要给一些实例来帮助理解。毕竟爬虫这项技能,我们经常可能用到,通常用于爬虫数据来训练模型。延续上一篇文章所说将爬虫分为四个主要部分:获取网页源代码解析网页并提取数据实现自动化抓取逻辑保存数据到文件(如execl)第一步:获取网页源代码......
  • 如何规范网站代码的随意修改?
    在网站开发过程中,未经严格审查的代码修改可能会引入新的漏洞或破坏现有功能。因此,建立一套完善的代码管理制度对于保证项目的稳定性和可维护性非常重要。本文将介绍几种防止随意代码修改的方法。答案:为了解决这个问题,可以从以下几个方面入手:版本控制系统(VCS):使用Git等工具管理......
  • 程序员转型:探索代码外的精彩人生
    程序员是现代科技社会的中坚力量,随着技术的快速发展,许多程序员已经不再满足于单纯的编码工作。随着职业生涯的不断深入,转型成为了越来越多程序员的选择。那么,除了常见的技术管理、产品经理等转型方向,程序员还能向哪些领域或岗位转型?如何在转型过程中充分利用已有的技术背景和......