栈的运行算法

一,顺序栈的静态分配

二,顺序栈的动态分配

#include<stdio.h>
#include<stdlib.h>
#define initsize 5
#define incresize 5typedef struct Sqstack{int *base;int *top;int stacksize;
}Sqstack;void InitStack(Sqstack *s){(*s).base=(int *)malloc(initsize*sizeof(int));if(!(*s).base)exit(0);(*s).top=(*s).base;(*s).stacksize=initsize;
}
void Push(Sqstack *s,int e){if((*s).top-(*s).base >= (*s).stacksize){(*s).base=(int*)realloc((*s).base,((*s).stacksize+incresize)*sizeof(int));if(!(*s).base)exit(0);(*s).top=(*s).base+(*s).stacksize;(*s).stacksize+=incresize;}*((*s).top)=e;(*s).top++;
}
void GetTop(Sqstack s,int *e){if(s.top==s.base) printf("empty!");*e=*(s.top-1);}
int StackLength(Sqstack s){return s.top-s.base;
}
int StackEmpty(Sqstack s){return (s.top==s.base);
}
void Pop(Sqstack *s,int *e){if((*s).top==(*s).base) exit(0);(*s).top--;*e=*((*s).top);
}
void Destroystack(Sqstack *s){if(s!=NULL){free((*s).base);(*s).base=NULL; (*s).top=NULL;(*s).stacksize=0;}
}int main(){Sqstack s;InitStack(&s);int e,p,x;for(int j=0;j<s.stacksize;j++){scanf("%d",&e);Push(&s,e);}GetTop(s,&p);printf("栈顶元素是%d ",p);if(StackEmpty(s)) printf("\n非空!");else ("\n empty!");int length=StackLength(s);printf("\n 栈长为%d",length);Pop(&s,&x);printf("\n 出栈元素是 %d",x);Destroystack(&s);return 0;
}

三,栈链

#include<stdio.h>
#include<stdlib.h>typedef struct stacknode{int data;struct stacknode *next;
}stackNode,*Linkstack;void Initstack(Linkstack *s){*s=(Linkstack)malloc(sizeof(stackNode));(*s)->next=NULL;}
void Push(Linkstack s,int x){Linkstack p=(Linkstack)malloc(sizeof(stackNode));if(!p)exit(0);p->data=x;p->next=s->next;s->next=p;}
void Gettop(Linkstack s,int *e){if(s->next==NULL)exit(0);*e=s->next->data;
}
int Empty(Linkstack s){return (s->next==NULL);
}void Pop(Linkstack s,int *e){if(s->next==NULL){printf("空!");exit(0);}stackNode *p=s->next;e=p->data;s->next=p->next;free(p);
}
void Destroystack(Linkstack s){Linkstack p=s->next,q;while(p!=NULL){q=p->next;free(p);p=q;}free(s);
}
int main(){Linkstack s;Initstack(&s);int n,x;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&x);Push(&s,x);}Gettop(&s,&x);printf("栈顶元素是 %d\n",x);int flag=Empty(s);if(flag==0)printf("空!");else printf("非空!");Pop(&s,&x);printf("出栈元素是 %d",x);Destroystack(&s);return 0;
}

四,进制转换

五,表达式求值

六,括号的匹配问题

七,迷宫问题

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

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

相关文章

抖音小程序没人做了吗?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 咱说的严谨点&#xff0c;不是没人做了&#xff0c;而是做的人少了。利益驱使&#xff0c;越来越多的人开始思考新方向了&#xff0c;开发小程序的人少了&#xff0c;排名也没多少人做了&#xff…

URL because the SSL module is not available

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host‘pypi.org’, port443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(“Can’t connect to HTT PS URL because the…

【java学习】构造方法重载(26)

文章目录 构造方法(构造器)的重载 构造方法(构造器)的重载 构造器一般用来创建对象的同时初始化对象。如 class Person{         String name;         int age; public Person(String n , int a){         namen; agea;         } } 构造器…

c++day5

#include <iostream>using namespace std;class Sofa { private:string sitting; public:Sofa(){cout << "沙发的无参构造函数" << endl;}Sofa(string s):sitting(s){cout << "沙发的有参构造函数" << endl;}void show(){co…

《UnityShader入门精要》学习1

读者可以在开源网站github&#xff08;https://github.com/candycat1992/Unity_Shaders_Book&#xff09;上下载本书的源代码。 第二章 渲染流水线 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理&#xff0c;即我们在电脑屏幕上看到的所有效果&#xff0c;它的输入是…

【Java 进阶篇】HTML 语义化标签详解

HTML&#xff08;HyperText Markup Language&#xff09;是构建Web页面的标准语言。在HTML中&#xff0c;标签&#xff08;tag&#xff09;是用于定义页面结构和内容的关键元素。在构建网页时&#xff0c;了解如何正确使用HTML标签是非常重要的&#xff0c;因为它们不仅影响页面…

【AIGC】如何在使用stable-diffusion-webui生成图片时看到完整请求参数

文章目录 背景开搞使用遇到的问题 背景 通过代码调用Stable Diffusion的txt2img、img2img接口时&#xff0c;很多时候都不知道应该怎么传参&#xff0c;比如如何指定模型、如何开启并使用Controlnet、如何开启面部修复等等&#xff0c;在sd-webui上F12看到的请求也不是正式调用…

WEEX编译|加密市场三季度回顾及未来展望

作者&#xff1a;Greg Cipolaro&#xff0c;NYDIG 全球研究主管 编译&#xff1a;WEEX 唯客交易所 本文要点&#xff1a; ● 在充满挑战的第三季度&#xff0c;比特币价格下跌 11.1%&#xff0c;因为众多资产类别都在努力应对利率上升的影响和对经济衰退的担忧。 ● 比特币…

SpringBoot基于jackson对象映射器扩展mvc框架的消息转换器

在SpringBoot中&#xff0c;可以基于jackson对象映射器扩展mvc框架的消息转换器 具体步骤如下&#xff1a; 1、创建对象映射器&#xff1a; package com.java.demo.common;import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.datab…

10-11 周三 shell xargs tr curl 做大事情

最近发现&#xff0c;shell的小工具非常的强大&#xff0c;简单记录下 tr命令 -d 删除字符串1中所有输入字符。-s 删除所有重复出现字符序列&#xff0c;只保留第一个&#xff1b;即将重复出现字符串压缩为一个字符串 -d 用于删除查询到的字符串中的空格。 [test3NH-DC-NM1…

JavaWeb---Servlet

1.Srvlet概述 Servlet是运行在java服务器端的程序&#xff0c;用于接收和响应来着客户端基于HTTP协议的请求 如果想实现Servlet的功能&#xff0c;可以通过实现javax。servlet。Servlet接口或者继承它的实现类 核心方法&#xff1a;service&#xff08;&#xff09;&#xf…

STM32--WDG看门狗

文章目录 WDG简介IWDGIWDG的超时计算WWDGWWDG超时和窗口值设定独立看门狗工程WWDG工程 WDG简介 WDG看门狗&#xff08;Watchdog Timer&#xff09;是一种常见的硬件设备&#xff0c;在STM32F10系列中&#xff0c;有两种看门狗&#xff0c;分别是独立看门狗和窗口看门狗&#x…

【算法|双指针系列No.6】leetcode LCR 179. 查找总价格为目标值的两个商品

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

设计模式 - 行为型模式考点篇:模板方法模式(概念 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、模板方法模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 一句话概括行为型模式 行为型模式&#xff1a;类或对象间如何交互、如何划分职责&#xff0c;从而更好的完成任务. 1.1、模板方法模式 1.1.1、概念 …

每日一题 1458两个子序列的最大点积

题目 题目 给你两个数组 nums1 和 nums2 。 请你返回 nums1 和 nums2 中两个长度相同的 非空 子序列的最大点积。 数组的非空子序列是通过删除原数组中某些元素&#xff08;可能一个也不删除&#xff09;后剩余数字组成的序列&#xff0c;但不能改变数字间相对顺序。比方说&…

Ansys Zemax | 如何建立LCD背光源模型

本文建立了楔形LCD背光源模型&#xff0c;并对其进行分析&#xff0c;并按照照明输出标准对其进行优化。 附件下载 联系工作人员获取附件 简介 液晶显示器 (LCDs) 作为一种显示技术&#xff0c;在当今社会中已经得到了广泛的应用。在商业领域中最突出的应用包括计算机显示器…

label-preserving transformations

label-preserving transformations,这是一种减少过拟合的方式。也就是在不影响图像标签的前提下&#xff0c;对图片进行变换&#xff0c;以达到数据增强的目的。通过这种方式增大我们的数据集&#xff0c;来减少过拟合。 两种数据增强方式&#xff1a; 1第一种数据增强方式包括…

自定义类型

目录 结构体 匿名结构体 结构体嵌套 结构体大小 设置默认对齐数 位段 位段的跨平台问题 Enum枚举 枚举的好处 union联合体 判断大小端 内存大小 结构体 前面我们讲了结构体的基本知识&#xff0c;还有一些知识并没有罗列完全&#xff0c;这篇将结构体剩余的一些小知…

Windows mysql 5.7 msi版、mysql 8.0 msi版下载、安装教程,附详细图文

大家好&#xff0c;今天为大家带来的是 mysql 5.7 msi &#xff0c; MySql 8.0 版本的下载、安装教程&#xff0c;附详细图文。本文以 5.7 版本为例子&#xff0c;帮助大家讲解。希望对大家有所帮助 文章首发地址 一、下载地址 这里提供一下 CSDN 镜像下载地址&#xff0c;有…

Spring5应用之事务属性

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言事务…