linkstack.c

#include<stdio.h>
#include<stdlib.h>
#include"linkstack.h"
//1.创建一个空的栈
void CreateEpLinkStack(linkstack_t **ptop)
{*ptop = NULL;
}
//2.入栈,ptop是传入的栈针的地址,data是入栈的数据
int pushLinkStack(linkstack_t **ptop, datatype data)
{//创建新节点保存入站数据linkstack_t *penw = (linkstack_t *)malloc(sizeof(linkstack_t));if(penw == NULL){printf("pushLinkStack err\n");return -1;}//申请空间是为了存放data,并初始化penw->data = data;//插入penw->next = *ptop;*ptop = penw;return 0;
}
//3.判断栈是否为空
int isEmptyLinkStack(linkstack_t *top)
{return top==NULL;
}
//4.出栈
datatype popLinkStack(linkstack_t **ptop)
{//linkstack_t *pdel = NULL;if(isEmptyLinkStack(*ptop)){printf("popLinkStack err\n");return -1;}pdel =*ptop;datatype data = pdel->data;(*ptop)=(*ptop)->next;free(pdel);pdel = NULL;}
//5.清空栈
void ClearLinkStack(linkstack_t **ptop)
{while(!isEmptyLinkStack(*ptop))popLinkStack(*ptop);
}
//6.求栈的长度
int LengthLinkStack(linkstack_t *top)
{int len=0;while(top!=NULL){len++;top=top->next;}return len;
}
//7.获取栈顶数据,不是出栈,不需要移动main函数中的top,所以用一级指针
datatype getTopLinkStack(linkstack_t *top)
{if(isEmptyLinkStack(top)){return top->data;}else{return -1;}}
int main(int argc, char const *argv[])
{return 0;
}

linkstack.h

#ifndef __LINKSTACK_H__
#define __LINKSTACK_H__
typedef int datatype;
typedef struct linkstack
{datatype data;struct linkstack *next;
} linkstack_t;
//1.创建一个空的栈
void createEmptyLinkStack(linkstack_t **ptop);
//2.入栈,ptop是传入的栈针的地址,data是入栈的数据
int pushLinkStack(linkstack_t **ptop, datatype data);
//3.判断栈是否为空
int isEmptyLinkStack(linkstack_t *top);
//4.出栈
datatype popLinkStack(linkstack_t **ptop);
//5.清空栈
void clearLinkStack(linkstack_t **ptop);
//6.求栈的长度
int lengthLinkStack(linkstack_t *top);
//7.获取栈顶数据,不是出栈,不需要移动main函数中的top,所以用一级指针
datatype getTopLinkStack(linkstack_t *top);
#endif

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

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

相关文章

数学建模Topsis法笔记

评价决策类-Topsis法学习笔记 问题的提出 生活中我们常常要进行评价&#xff0c;上一篇中的层次分析法&#xff0c;通过确定各指标的权重&#xff0c;来进行打分&#xff0c;但层次分析法决策层不能太多&#xff0c;而且构造判断矩阵相对主观。那有没有别的方法呢&#xff1f…

石英加速度计为何成为行业标杆?

在石油钻井、航空航天、工业自动化等领域&#xff0c;高精度、高可靠性的加速度测量至关重要。ER-QA-03F系列石英挠性加速度计凭借其卓越的性能和稳定的表现&#xff0c;成为静态与动态测试的理想选择。自2012年推出以来&#xff0c;该产品已交付数千台&#xff0c;并在石油钻井…

HP Pavilion G6 笔记本使用ventoy启动安装Ubuntu 22.04 桌面版

HP Pavilion G6 笔记本是很老的笔记本了&#xff0c;淘到一款&#xff0c;成色比较新&#xff0c;使用i5 3210 M cpu &#xff0c;内存是2G*2&#xff0c;正好手边有一条4G内存条&#xff0c;替换一条后扩充为6G内存&#xff0c;感觉可以再战10年&#xff01;&#xff08;当然6…

STM32G4 Park及反Park变换(二)实验

目录 一、STM32G4 Park及反Park变换(二)实验 1 Park及反Park变换 1.1 代码 1.2 上位机实验结果 附学习参考网址 欢迎大家有问题评论交流 (* ^ ω ^) 一、STM32G4 Park及反Park变换(二)实验 1 Park及反Park变换 本文介绍了基于STM32G4的Park及反Park变换实验过程。主要内容…

pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)

使用 CURRENT_DATE 函数CURRENT_DATE 返回当前日期&#xff08;不含时间部分&#xff09;。当它在查询中与 timestamp 字段比较时&#xff0c;会自动被视为当天的开始&#xff0c;即 YYYY-MM-DD 00:00:00。CURRENT_DATE INTERVAL 1 day 计算出第二天的开始时间&#xff0c;即 …

DRM驱动架构浅析-上(DRM基础概要与U-Boot阶段驱动解析)

一、背景 近期项目吃紧&#xff0c;接了不少调屏相关的需求&#xff0c;期间磕磕绊绊&#xff0c;但总算完成要求。回首过往&#xff0c;调试过多种屏幕&#xff0c;包括LVDS、EDP、MIPI、MI转EDP或是转LVDS、DP以及HDMI等常见屏。在Rockchip平台调外设也有段时间矣&#xff0…

idea中如何设置文件的编码格式

目录 一、全局与项目编码配置 二、新项目预配置 一、全局与项目编码配置 File --> Settings --> Editor --> File Encodings Global Encoding&#xff1a;设置为UTF-8&#xff0c;影响IDE界面及新建文件的默认编码。‌‌Project Encoding&#xff1a;选择UTF-8&am…

2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(六)

本文主要回顾2025年上半年(2025-5-24)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一) 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(…

Ubuntu22系统上源码部署LLamaFactory+微调模型 教程【亲测成功】

0.LLamaFactory LLaMA-Factory 是一个开源的低代码大模型训练与微调框架&#xff0c;旨在简化大规模语言模型&#xff08;LLM&#xff09;的微调、评估和部署流程&#xff0c;帮助开发者和研究人员更高效地定制和优化模型。 1.安装部署 1.1克隆仓库 git clone --depth 1 ht…

打靶日常-sql注入(手工+sqlmap)

小知识: 注入点:在哪里输入sgl指令中的参数 执行点:在那个页面拼接sql指令并发送给数据库执行 回显点:执行的结果显示在哪个页面 sqlmap知识点: 输出等级 -v3 范围0-6 默认1 一般3 考试3 测试等级 --level=1 范围…

绕过服务端文件上传检测:黑名单绕过技术与实战

绕过服务端文件上传检测&#xff1a;黑名单绕过技术与实战文件上传漏洞是Web安全中常见且危害极大的漏洞类型之一&#xff0c;而黑名单机制是最基础的防御手段。本文将深入探讨三种经典的黑名单绕过技术&#xff0c;并提供实战案例与防御方案。引言 文件上传功能是现代Web应用的…

在职老D渗透日记day21:sqli-labs靶场通关(第27a关)get联合注入 过滤select和union “闭合

5.27a.第27a关 get联合注入 过滤select和union "闭合function blacklist($id) { $id preg_replace(/[\/\*]/,"", $id); //strip out /* $id preg_replace(/[--]/,"", $id); //Strip out --. $id preg_replace(/[#]/,"", $id); //Strip …

Git#cherry-pick

场景 项目里有多个分支&#xff0c;在某个分支commit内容想要应用到当前分支 命令 git cherry-pick --helpgit cherry-pick commit-ish&#xff1a;某个其他分支的commit应用到当前所在分支 (默认自动提交)git cherry-pick -n commit-ish&#xff1a;–no-commit(不自动提交)&a…

极海APM32F107V6 gpio模拟串口

一、原理部分 之前用外设都是直接用的硬件自带的库&#xff0c;虽然以前有学过原理和时序&#xff0c;但是因为工作其实也很少会有需要gpio模拟串口的情况&#xff0c;但总会有串口用完&#xff0c;但是需要一个类似打印串口的情况。今天也是开整&#xff0c;然后用硬件的库对…

【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

链表基本运算详解:查找、插入、删除及特殊链表

在上一篇文章中&#xff0c;我们介绍了线性表的基本概念和顺序存储。本文将深入探讨单链表的基本运算&#xff0c;并介绍循环链表和双向链表这两种特殊的链表结构&#xff0c;帮助读者全面掌握链表的操作技巧。 文章目录1.单链表基本运算链表的查找操作按序号查找按值查找链表的…

8.19作业

1.聊天室1.1服务器#include <myhead.h> #define SER_PORT 8888 #define SER_IP "192.168.174.128"struct msg {char type;char usrname[20];char msgtext[1024]; };int main(int argc, const char *argv[]) {int sfd socket(AF_INET,SOCK_STREAM,0);if (sfd-1…

95、23种设计模式之建造者模式(4/23)

建造者模式&#xff08;Builder Pattern&#xff09;是23种经典设计模式中的创建型模式之一&#xff0c;其核心思想是将复杂对象的构建过程与其表示分离&#xff0c;使得同样的构建流程可以生成不同结构或配置的对象。以下从定义、结构、应用场景、优缺点及代码示例展开分析&am…

LIA-X - 一张照片生成任意表情肖像动画视频 精准操控面部动作 支持50系显卡 一键整合包下载

LIA-X 是一个可解释的潜在肖像动画生成器&#xff0c;只需要一张照片加一段驱动视频生成任意表情肖像动画&#xff0c; 旨在将驱动视频中的面部动态精细地转移到源肖像上&#xff0c;同时提供对头部、嘴巴和眼睛的精细控制。同时支持图像和视频的编辑任务&#xff0c;比如对头部…

Google 的 Opal:重新定义自动化的 AI 平台

1. 真实世界测试&#xff1a;结果出乎意料 我让 Opal 接受了三项极具挑战性的任务&#xff1a; 1.1. 博客生成器挑战 我的提示&#xff1a;“研究并撰写一篇关于 2 亿美元融资对无代码&#xff08;no-code&#xff09;影响的文章。” 发生了什么&#xff1a;Opal 不仅仅是写…