数据结构:链式栈

stack.h

/*===============================================
*   文件名称:stack.h
*   创 建 者:cxy     
*   创建日期:2024年01月18日
*   描    述:
================================================*/
#ifndef _STACK_H
#define _STACK_H#include <stdio.h>
#include <stdlib.h>typedef struct stack{int data;struct stack *top;
}Stack,*Pstack;int init(Pstack *P);
int empty(Pstack p);
int push_stack(Pstack p,int data);  //尾插
int pop_stack(Pstack p,int *data);  //只能从尾巴出栈,在一端操作(栈顶)
int clear(Pstack p);#endif

stack.c

/*===============================================
*   文件名称:stack.c
*   创 建 者:     
*   创建日期:2024年01月18日
*   描    述:
================================================*/
#include "stack.h"int init(Pstack *P)
{*P = malloc(sizeof(Stack));if(NULL == *P){perror("init err:*P");return -1;}(*P)->top = NULL;
}int empty(Pstack p)
{if(NULL == p){perror("empty err:p");return -1;}if(p->top == NULL)return 1;elsereturn 0;
}int push_stack(Pstack p,int data)
{if(NULL == p){perror("push err:p");return -1;}Pstack q = malloc(sizeof(Stack));if(NULL == q){perror("push err:q");return -1;}while(p->top != NULL)p = p->top;q->data = data;q->top = p->top;p->top = q;return 0;
}int pop_stack(Pstack p,int *data)
{if(NULL == p){perror("pop err:p");return -1;}if(empty(p)){perror("pop err:empty");return -1;}while(p->top->top != NULL)p = p->top;Pstack q = p->top;*data = q->data;p->top = q->top;free(q);return 0;
}int clear(Pstack p)
{if(NULL == p){perror("clear err:p");return -1;}Pstack q = p;while(p->top != NULL){q = p->top;p->top = q->top;free(q);}return 0;
}

mian.c

/*===============================================
*   文件名称:main.c
*   创 建 者:     
*   创建日期:2024年01月18日
*   描    述:
================================================*/
#include "stack.h"int main(int argc, char *argv[])
{ Pstack p;init(&p);int data;printf("**********empty,1为空**********\n");data = empty(p);printf("%d\n",data);printf("**********push_stack**********\n");data = 5;while(data--){push_stack(p,data);printf("入栈数据为:%d\n",data);}printf("**********empty,1为空**********\n");data = empty(p);printf("%d\n",data);printf("**********pop_stack**********\n");data = 5;int num = 0;while(data--){pop_stack(p,&num);printf("出栈数据为:%d\n",num);}printf("**********clear**********\n");clear(p);printf("**********empty,1为空**********\n");data = empty(p);printf("%d\n",data);return 0;
} 

结果

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

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

相关文章

环形链表问题2(返回链表开始入环的第一个节点)

环形链表问题2&#xff08;返回链表开始入环的第一个节点&#xff09; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream…

妇幼保健院污水处理需要哪些工艺设备

妇幼保健院作为医疗机构&#xff0c;在日常运营中会产生大量的污水&#xff0c;因此污水处理是一个非常重要的环节。为了保证污水得到有效处理&#xff0c;并达到相关的排放标准&#xff0c;妇幼保健院污水处理工艺设备是必不可少的。 首先&#xff0c;妇幼保健院污水处理需要一…

【蓝桥杯EDA设计与开发】资料汇总以及立创EDA及PCB相关技术资料汇总(持续更新)

[18/01/2024]&#xff1a;目前为了准备蓝桥杯做一些资料贴&#xff0c;于是写下这一篇博客。 各种资料均来源于网络以及部分书籍、手册等文档&#xff0c;参考不保证其准确性。 如果在准备蓝桥杯&#xff0c;可与我私信共同学习&#xff01;&#xff01;&#xff01;&#xf…

大数据开发之Hadoop(Yarn)

第 1 章&#xff1a;Yarn资源调度器 思考&#xff1a; 1、如何管理集群资源&#xff1f; 2、如何给任务合理分配资源&#xff1f; Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而MapReduce等运…

防止AWS主机被攻击

虚拟机经常连接不上 由于工作需要&#xff0c;自己在亚马逊买了台EC2主机&#xff0c;并在上面安装了工作要用的软件&#xff0c;以前是只有关键时间点才会连不上&#xff0c;可是最近几乎每隔一天就连不上&#xff0c;导致工作受影响&#xff0c;所以决定花时间看看怎么回事。…

分享一个基于easyui前端框架开发的后台管理系统模板

这是博主自己在使用的一套easyui前端框架的后台管理系统模版&#xff0c;包含了后端的Java代码&#xff0c;已经实现了菜单控制、权限控制功能&#xff0c;可以直接拿来使用。 springboot mybatis mybatis-plus实现的增删查改完整项目&#xff0c;前端使用了easyui前端框架。…

文件系统和IO流

目录 ​文件系统和IO流 一:文件的认知 认识文件 树型结构组织和⽬录: 文件路径&#xff08;Path): 文件形式: 二:File的方法 File的概述: File的属性 File的构造方法 File常用的get系列方法 ⽰例一:观察get系列的特点和差异 File常用的增,删方法 示例二:普通文件…

Unity 编辑器篇|(十)Handles (全面总结 | 建议收藏)

目录 1. 前言2 参数总览3 Handles两种使用方式3.1 基于Editor类的OnSceneGUI3.2 基于EditorWindow 4 Handles绘制4.1 Draw&#xff1a;绘制元几何体(点、线、面)4.1.1 抗锯齿&#xff1a; DrawAAPolyLine 、 DrawAAConvexPolygon4.1.2 绘制实线: DrawLine 、 DrawLines 、DrawP…

排序:非递归的归并排序

目录 递归与非递归的思想对比&#xff1a; 递归&#xff1a; 非递归&#xff1a; 代码解析&#xff1a; 完整代码&#xff1a; 递归与非递归的思想对比&#xff1a; 递归&#xff1a; 在之前的归并排序&#xff0c;它的核心思想是通过不断的分割&#xff0c;从一个数组变…

HTML 表单

文章目录 表单什么是表单GET和POST两种提交方式有什么不同?表单元素表单项外文本单行文本输入框单行文本密码框单选框复选框下拉列表框上传文件隐藏域填写邮箱填写电话填写数字填写日期进度条多行文本输入框提交按钮取消按钮 用户注册案例 表单 什么是表单 form:表单元素 此…

机器人强化学习-双机械臂

概要 基于 robosuite 库&#xff0c;进行双臂机器人学习训练 环境测试 下面展示下分别控制两个机械手随机运动的画面&#xff1a; 双臂显示场景如下&#xff1a;双臂调用代码如下&#xff1a; import numpy as np import robosuite as suite import robomimic import rob…

【vue2】状态管理之 Vuex

文章目录 一、介绍1、概念 2、工作示意图3、安装4、简单示例 二、核心1、State1.1 组件中获取 Vuex 的状态1.2 mapState 辅助函数1.3 对象展开运算符 2、Getter2.1 基本使用2.2 通过属性访问2.3 通过方法访问2.4 mapGetters 辅助函数 3、Mutation3.1 定义 mutation3.2 commit 提…

多线程排序(java版)

&#x1f4d1;前言 本文主要是【排序】——多线程排序的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#x…

Docker-02-镜像项目部署

Docker-02-镜像&项目部署 文章目录 Docker-02-镜像&项目部署一、镜像①&#xff1a;镜像结构②&#xff1a;Dockerfile③&#xff1a;构建镜像01&#xff1a;构建02&#xff1a;查看镜像列表03&#xff1a;运行镜像 二、网络①&#xff1a;容器的网络IP地址②&#xff…

数据中心负载测试的常用工具和技术有哪些?

数据中心负载测试是评估系统在高负载下的性能和稳定性的重要手段。通过模拟大量用户并发访问&#xff0c;可以检测系统的瓶颈和潜在问题&#xff0c;为优化系统性能提供依据。以下是一些常用的数据中心负载测试工具和技术&#xff1a; Apache JMeter&#xff1a;JMeter是一个开…

《世界之外》提前开测,网易打响国乙大战

1月18日&#xff0c;国乙市场迎来了一场大战。 原定于1月26日开服的网易新乙游《世界之外》&#xff0c;突然宣布在1月18日进行不删档、不限量测试&#xff0c;从某种意义上来说&#xff0c;其实就等同于提前公测。 而同一天开服的还有叠纸的全新3D乙游《恋与深空》&#xff…

基于R语言的NDVI的Sen-MK趋势检验

本实验拟分析艾比湖地区2010年至2020年间的NDVI数据&#xff0c;数据从MODIS遥感影像中提取的NDVI值&#xff0c;在GEE遥感云平台上将影像数据下载下来。代码如下&#xff1a; import ee import geemap geemap.set_proxy(port7890)# 设置全局网络代理 Map geemap.Map()# 指定…

2024年宜昌市中级职称评定条件能力业绩要求是什么?

1.参与完成 4 项中型以上工程建筑项目的勘察、设计&#xff0c;并通过审查 2.参与完成标准&#xff08;含国家标准、行业标准、地方标准、团体、标准&#xff09;、省级标准设计&#xff0c;参与工法、管理办法、规定、规程细则的编写&#xff0c;并正式发布实施 3.参与完成新技…

文件上传时报413错误

原因&#xff1a;nginx上传文件大小有限制&#xff0c;如果不配置nginx上传文件大小&#xff0c;则上传时会出现 413 (Request Entity Too Large) 异常&#xff08;请求实体过大&#xff09; 解决方案&#xff1a;1、打开nginx主配置文件nginx.conf&#xff0c;找到http{ }&…

go语言(三)----函数

1、函数单变量返回 package mainimport "fmt"func fool(a string,b int) int {fmt.Println("a ",a)fmt.Println("b ",b)c : 100return c}func main() {c : fool("abc",555)fmt.Println("c ",c)}2、函数多变量返回 pack…