4.18作业

顺序栈:

#include "seq_stack.h"
seq_p creat_stack()  //从堆区申请顺序栈的空间
{
	seq_p S=(seq_p)malloc(sizeof(seq_stack));
	if(S==NULL)
	{
		printf("空间申请失败\n");
		return NULL;
	}
	bzero(S->data,sizeof(S->data));
	S->top=-1;
	return S;
}
int empty_stack(seq_p S)  //判空
{
	if(S==NULL)
	{
		printf("入参为空,请检查\n");
		return -1;
	}
	return S->top==-1?1:0;
}
int full_stack(seq_p S)  //判满
{
	if(S==NULL)
	{
		printf("入参为空,请检查\n");
		return -1;
	}
	return S->top==MAX-1?1:0;
}
void push_stack(seq_p S,int data)  //入栈、压栈
{
	if(S==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	if(full_stack(S))
	{
		printf("栈已满,不能入栈\n");
		return;
	}
	S->data[++(S->top)]=data;
}
void pop_stack(seq_p S)  //出栈、弹栈
{
	if(S==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	if(empty_stack(S))
	{
		printf("栈为空,无需出栈\n");
		return;
	}
	printf("出栈元素为%d\n",S->data[S->top--]);
}
void show_stack(seq_p S)  //输出
{
	if(S==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	if(empty_stack(S))
	{
		printf("栈为空,无需输出\n");
		return;
	}
	for(int i=S->top;i>=0;i--)
		printf("%-4d",S->data[i]);
	putchar(10);
}
void free_stack(seq_p *S)  //释放顺序栈
{
	if(S==NULL || *S==NULL)
	{
		printf("入参为空,请检查\n");
		return;
	}
	free(*S);
	*S=NULL;
}

链栈:

#include "link_stack.h"
node_p creat_node(int data)  //申请结点
{
	node_p new=(node_p)malloc(sizeof(node));
	if(new==NULL)
	{
		printf("空间申请失败\n");
		return NULL;
	}
	new->data=data;
	return new;
}
void push_stack(node_p *T,int data)  //入栈
{
	node_p new=creat_node(data);
	new->next=*T;
	*T=new;
}
void pop_stack(node_p *T)  //出栈
{
	if(empty_stack(*T))
	{
		printf("栈空,无需出栈\n");
		return;
	}
	node_p del=*T;
	*T=del->next;
	printf("出栈的元素为%d\n",del->data);
	free(del);
}
void show_stack(node_p T)  //输出栈
{
	if(empty_stack(T))
	{
		printf("栈空,无需输出\n");
		return;
	}
	node_p p=T;
	while(p!=NULL)
	{
		printf("%d->",p->data);
		p=p->next;
	}
	printf("NULL\n");
}
int empty_stack(node_p T)  //判空
{
	return T==NULL?1:0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL:图元

OpenGL的图元 点 GL_POINTS: 将顶点绘制成单个的点 线 GL_LINES:将顶点用于创建线段,2个点成为一条单独的线段。如果顶点个数是奇数,则忽略最后一个。 顶点:v0, v1, v2, v3, … , vn,线段:v0-v1, v2-v3, v4-v5, … , vn-1 - vn GL_LINE_STRIP:将顶点用于创建线段,…

在Linux系统中,禁止有线以太网使用NTP服务器进行时间校准的几种方法

目录标题 方法 1:修改NTP配置以禁止所有同步方法 2:通过网络配置禁用NTP同步方法 3:禁用NTP服务 在Linux系统中,如果想要禁止有线以太网使用NTP服务器进行时间校准,可以通过以下几种方法之一来实现: 方法 …

tcp网络编程——2

1.一个服务器只能有一个客户端连接(下面代码) ​​​​​​​tcp网络编程(基础)-CSDN博客 2.一个服务器可以有多个客户端连接(多线程) server端创建多个线程,每个线程与不同的client端建立连…

代码签名证书的作用及申请

代码签名证书新兴的数字证书的一种,应用范围相对于传统的数字证书而言要稍微少一些。用于验证软件代码的来源和完整性,并提供了一种防止代码被篡改或损坏的机制。常用于软件开发上,代码签名证书由签名证书公钥和私钥证书两部分组成&#xff0…

day05-Elasticsearch01

1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch 是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在 GitHub 搜索代码在电商网站搜索商品在百度搜索答案在打…

【工位ubuntu的配置】补充

软件 安装桌面图标的问题 登录密码 root的密码为:19980719 按照如下的链接进行配置: https://blog.csdn.net/zhangmingfie/article/details/131102331?spm1001.2101.3001.6650.3&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7E…

永久免费次数ChatGPT国内镜像网站【强烈建议收藏】

gctohttps://chat.tomyres.com/#/pages/web/index?n0 觉得分享的网站好用的话,记得点赞收藏哦。

lettcode179.最大数

问题描述: 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例一: 输入nums [10…

街景图片语义分割后像素类别提取,用于计算各种指标。

语义分割代码见之前博文(免费):deeplabv3街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用。cityscapes 语义分割之后,如下图,想要统计各类像素所占的比例,用于…

2024 MathorCup C 题 物流网络分拣中心货量预测及人员排班

一、问题重述 电商物流网络在订单履约中由多个环节组成,图1是一个简化的物流网络示意图。其中,分拣中心作为网络的中间环节,需要将包裹按照不同流向进行分拣并发往下一个场地,最终使包裹到达消费者手中。分拣中心管理效率的提升&…

初识 React:安装和初步使用指南

文章目录 前言一、React 是什么?1.组件化开发2.虚拟 DOM3.单向数据流4.生态系统丰富 二、安装1.准备工作2.下载react 三、探索 React 应用总结 前言 在当今的 Web 开发领域,React 已经成为了一个备受推崇的技术。它的组件化、灵活性和高效性使得它成为了…

MySQL中InnoDB的行级锁

InnoDB 实现了以下两种类型的行锁。 共享锁(S):又称为读锁,简称S锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。 排他锁(X)&am…

时间同步服务项目练习

一.配置server主机要求如下: 1.server主机的主机名称为 ntp_server.example.com 2.server主机的IP为: 172.25.254.100 3.server主机的时间为1984-11-11 11:11:11 4.配置server主机的时间同步服务要求可以被所有人使用 更改主机名…

Android开发基础:Activity之间的跳转 向下一个Activity传递数据 给上一个Activity返回数据

目录 一,使用Intent在Activity之间跳转 1.显示使用Intent 2.隐式使用Intent 二,携带数据的跳转 1.Bundle 三,返回数据给上一个Activity 1.registerForActivityResult 一,使用Intent在Activity之间跳转 一个Android应用中包…

APEX开发过程中需要注意的小细节5.5

oracle保留小数点后两位的函数 在日常开发中经常用到百分比做数据对比,但是有可能得到的数据是一个多位小数,结果如下所示: 如果想截取部分小数如保留小数点后两位可以怎么做呢? 在Oracle中,可以使用ROUND函数来四舍…

请警惕,这10本期刊已被SCI剔除,部分涉嫌灌水

科睿唯安于4月15日更新了SCIE、SSCI、AHCI、ESCI四大数据库最新收录期刊目录。 2024年第一版——2024年1月24日更新 2024年第二版——2024年2月19日更新 2024年第三版——2024年3月18日更新 2024年第四版——2024年4月15日更新 本次目录中共收录期刊23368本。 【SCIE数据…

档案集中管理的痛点怎么解决?

档案集中管理可能面临的痛点包括以下几个方面: 1. 档案分类和整理困难:档案集中管理会面临大量档案的分类和整理工作,可能导致混乱和困难。 解决方法: - 建立统一的档案分类规范和流程,确保所有档案都能按照规定的方式…

《QT实用小工具·二十九》托盘图标控件

1、概述 源码放在文章末尾 托盘图标控件 可设置托盘图标对应所属主窗体。 可设置托盘图标。 可设置提示信息。 自带右键菜单。 下面是demo演示: 项目部分代码如下: #ifndef TRAYICON_H #define TRAYICON_H/*** 托盘图标控件* 1. 可设置托盘图标…

Unity类银河恶魔城学习记录12-17 p139 In game UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using UnityEngine;public class UI : MonoBehaviour {[SerializeFie…

仿真科普|从设计到研发,CAE仿真技术为汽车智造保驾护航

2024年3月28日,对于汽车产业来说,是历史性的一天,作为近年汽车行业发布会流量最大的一次,小米SU7的发布让整个汽车圈为之沸腾,成功收割全平台热搜。时至今日,小米汽车依然热度不减。 随着“蔚、小、理、特…