HQYJ 2024-2-26 作业

1.整理链表的代码

link.stack.h文件

#ifndef __LINK_STACK_H__
#define __LINK_STACK_H__
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
typedef struct link_stack
{datatype data;struct link_stack *next;}link_stack,*link_p;
typedef struct top_t
{int len;link_p ptop;
}top_t,*top_p;
//申请栈顶
top_p creat_top();
//申请结点的函数
link_p creat_nod(int data);
//判空
int empty(top_p T);
//入栈/压栈
void push_stack(top_p T,int data);
//出栈
void pop_stack(top_p T);
//遍历
void show_stack(top_p T);
//销毁
void free_stack(top_p *T);#endif

link.stack.c文件

#include "link_stack.h"
//申请栈顶
top_p creat_top()
{top_p top = (top_p)malloc(sizeof(top_t));if(top==NULL){printf("申请空间失败\n");return NULL;}top->len=0;top->ptop = NULL;return top;
}//申请结点的函数
link_p creat_nod(int data)
{link_p new = (link_p)malloc(sizeof(link_stack));if(new==NULL){printf("申请空间失败\n");return NULL;}new->data = data;return new;
}
//判空
int empty(top_p T)
{if(T==NULL){printf("入参失败\n");return -1;}return T->ptop==NULL?1:0;
}
//入栈/压栈
void push_stack(top_p T,int data)
{if(T==NULL){printf("入参为空\n");return;}link_p new = creat_nod(data);new->next = T->ptop;T->ptop = new;T->len++;
}//出栈
void pop_stack(top_p T)
{	if(T==NULL){printf("入参为空\n");return;}if(empty(T)){printf("栈为空\n");return;}link_p pop  = T->ptop;T->ptop = T->ptop->next;printf("出栈的元素为:%d\n",pop->data);T->len--;
}
//遍历
void show_stack(top_p T)
{if(T==NULL){printf("入参为空\n");return;}if(empty(T)){printf("栈为空\n");return;}link_p p = T->ptop;for(int i=T->len;i>=1;i--){printf("%d\n",p->data);if(p->next!=NULL){	p = p->next;}}}
//销毁
void free_stack(top_p *T)
{link_p p = (*T)->ptop;while(p!=NULL){link_p q = p->next;free(p);p = q;}free(*T);*T = NULL;
}

 main.c文件

#include "link_stack.h"
int main()
{top_p T = creat_top();push_stack(T,1);push_stack(T,2);push_stack(T,3);pop_stack(T);pop_stack(T);printf("%d\n",empty(T));show_stack(T);free_stack(&T);show_stack(T);return 0;
}

 

 

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

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

相关文章

【Java程序设计】【C00283】基于Springboot的校园志愿者管理系统(有论文)

基于Springboot的校园志愿者管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的校园志愿者管理系统 本系统分为系统功能模块、管理员功能模块以及志愿者功能模块。 系统功能模块&#xff1a;用户进入到系统…

vue3.0 ref的使用

一.在vue2中定义变量 在使用vue2的时候,我们定义变量会在data中进行定义&#xff0c;那么我们在vue3中是如何定义变量的呢&#xff1f;我们会使用ref来进行定义。 (1)我们通过一个简单的案例来看 代码&#xff1a; <template> <div><button click"coun…

matlab 凸轮轮廓设计

1、内容简介 略 46-可以交流、咨询、答疑 2、内容说明 略 4 取标段的分析 取标装置是贴标机的核心部件之一&#xff0c;是影响贴标质量和贴标精度的重要因素&#xff0c;取标段是通过取标板与标签的相切运动使得涂有胶水的取标板从标签盒中粘取标签纸[4]&#xff0c;理论…

DP读书:《半导体物理学(第八版)》(一)绪论 3min速通

DP读书&#xff1a;《半导体物理学&#xff08;第八版&#xff09;》刘恩科 3min速通半导体物理之绪论 DP读书&#xff1a;《半导体物理学&#xff08;第八版&#xff09;》刘恩科绪论第一章 半导体中的电子状态1.1 半导体的晶格结构和结合性质1.1.1 金刚石型结构和共价键1.1.2…

电子科技大学课程《操作系统原理与实践》(持续更新)

前言 本人学习采用的是学校老师出版的课本&#xff0c;教学顺序与部分内容可能有所不同&#xff0c;具体以自己老师的教学为准&#xff0c;适合同学期中和期末考试的复习。重点内容用#标记&#xff0c;#数量越多&#xff0c;越重要&#xff0c;电子科技大学学生可以先看附言&a…

C++ 学习之函数对象

C 函数对象基本概念 在C中&#xff0c;函数对象&#xff08;Function Objects&#xff09;是一种类或结构体&#xff0c;它重载了函数调用运算符operator()&#xff0c;因此可以像函数一样被调用。函数对象有时也被称为仿函数&#xff08;Functor&#xff09;。 以下是关于C函…

线性表——单链表的增删查改(上)

本节复习链表的增删查改 首先&#xff0c; 链表不是连续的&#xff0c; 而是通过指针联系起来的。 如图&#xff1a; 这四个节点不是连续的内存空间&#xff0c; 但是彼此之间使用了一个指针来连接。 这就是链表。 现在我们来实现链表的增删查改。 目录 本节函数接口列表…

【大厂AI课学习笔记NO.54】2.3深度学习开发任务实例(7)数据标注和数据集拆分

数据标注 有时我们会把特征工程和数据集的标注弄混淆&#xff0c;在普通的机器学习项目中&#xff0c;我们需要进行特征工程&#xff0c;但是在深度学习项目过程中&#xff0c;我们需要进行数据标注工作。 标注工具 在本案例中&#xff0c;使用的是开源的标注工具Labelme&am…

详解三种网络适配器:HBA、NIC 和 CNA

目录 前言&#xff1a; 一、主机总线适配器 (HBA) HBA的特点 二、网络接口卡 (NIC) NIC的特点 三、并发网络适配器 (CNA) CNA的特点 四、HBA、NIC 与 CNA的区别 五、结论 前言&#xff1a; 网络中的主机总线适配器 (HBA)、网络接口卡 (NIC) 和并发网络适配器 (CNA) 是…

软件项目需求开发和管理指南

1.需求获取的方式 2.需求分析的准则 3.需求分析的方法 4.需求开发考虑的方面 5.需求确认的方法 6.需求优先级的设定 7.需求文档编制规范要求 软件全文档获取&#xff1a;软件项目开发全套文档下载_软件项目文档-CSDN博客

【Git】Git命令的学习与总结

本文实践于 Learn Git Branching 这个有趣的 Git 学习网站。在该网站&#xff0c;可以使用 show command 命令展示所有可用命令。你也可以直接访问网站的sandbox&#xff0c;自由发挥。 一、本地篇 基础篇 git commit git commit将暂存区&#xff08;staging area&#xff…

药品管理新趋势:Java与SpringBoot的融合

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…