队列---学生信息输入输出

news2025/1/11 0:51:12

作业:链栈,自己实现一遍,但是节点存储不是整数,存储学生信息(年龄,分数,姓名)三级引用。

1、建立学生信息结构体,将data改为学生信息结构体类型。

2、循环入栈和入队。

#include <myhead.h>
#define N 4
typedef struct//重定义数据结构 
{
    int age;
    int score;
    char name[20];
}stu;
typedef struct node
{
    stu data;
    struct node *next;
}Node;
typedef struct
{
    int len;
    Node *rear;
    Node *front;
}Queue,*pqueue;
pqueue creat_queue()
{
    pqueue p=malloc(sizeof(Queue));//创建新队列
    if(p==NULL)//判断是否创建成功
    {
        printf("队列创建失败\n");
    }
    p->rear=NULL;//队头指针指向空指针
    p->front=NULL;//同上
    p->len=0;//队列长度置零;
    return p;//返回队头地址
}
void in_queue(pqueue L)
{
    if(L==NULL)//判断
    {
        printf("队列不存在\n");
    }
    Node *p=malloc(sizeof(Node));//创建新节点
    printf("请输入学生信息:");
    scanf("%d%s%d",&p->data.age,p->data.name,&p->data.score);
    if(L->rear==NULL)//判断是否是第一个节点
    {
        L->rear=p;
        L->front=p;
    }
    else
    {
        L->rear->next=p;
        L->rear=p;
    }
    L->len++;
    printf("输入成功\n");
}
void output_queue(pqueue L)
{
    if(L==NULL||L->len==0)//判断
    {
        printf("队列不存在或为空\n");
    }
    Node *p=L->front;
    for(int i=0;i<L->len;i++)//循环输出
    {
        printf("%d\t%s\t%d\n",p->data.age,p->data.name,p->data.score);
        p=p->next;
    }
}
void out_queue(pqueue L)
{
    if(L==NULL)//判断
    {
        printf("队列不存在\n");
    }
    Node *p=L->front;
    L->front=L->front->next;//指向下一个节点
    printf("弹出:\n");
    printf("%d\t%s\t%d\n",p->data.age,p->data.name,p->data.score);
    free(p);//销毁弹出节点
    p=NULL;
    L->len--;
}
int main(int argc, const char *argv[])
{
    pqueue L=creat_queue();
    for(int i=0;i<N;i++)//循环输入
    {
        in_queue(L);
    }
    output_queue(L);
    out_queue(L);
    return 0;
}

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

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

相关文章

RPC 和 HTTP 理解

网上充斥着各类类似于这样的文章&#xff1a;rpc 比 http 快了多少倍&#xff1f;既然有了 http&#xff0c;为什么还要用 rpc 调用等等。遇到这类文章&#xff0c;说明对 http 和 rpc 是由理解误区的。 这里再次重复强调一遍&#xff0c;通信协议不是 rpc 最重要的部分&#x…

KubeSphere 部署 Kafka 集群实战指南

本文档将详细阐述如何利用 Helm 这一强大的工具&#xff0c;快速而高效地在 K8s 集群上安装并配置一个 Kafka 集群。 实战服务器配置(架构 1:1 复刻小规模生产环境&#xff0c;配置略有不同) 主机名IPCPU内存系统盘数据盘用途ksp-registry192.168.9.904840200Harbor 镜像仓库…

命令行参数环境变量

目录 前言&#xff1a; 命令行参数&#xff1a; 现象&#xff1a; 这些参数的意义&#xff1a; 为什么要这么做&#xff1f; 这些事是谁做的呢&#xff1f; 环境变量 现象&#xff1a; 创建环境变量&#xff1a; 结合程序理解&#xff1a; 前言&#xff1a; 我们在前…

R语言里认识机器学习

下面内容摘录自&#xff1a; 1章2节&#xff1a;关于人工智能、机器学习、统计学连和机器学习、R 与 ChatGPT 的探究-CSDN博客文章浏览阅读1k次。在现代科技发展的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;、统计学、R 编程…

网络通信(TCP/UDP协议 三次握手四次挥手 )

三、TCP协议与UDP协议 1、TCP/IP、TCP、 UDP是什么 TCP/IP协议是一个协议簇&#xff0c;里面包括很多协议的&#xff0c; UDP只是其中的一个&#xff0c; 之所以命名为TCP/IP协议&#xff0c; 因为TCP、 IP协议是两个很重要的协议&#xff0c;就用他两命名了&#xff0c;而TCP…

告别知云单一选择,这些文献翻译工具同样值得信赖!

在翻译领域&#xff0c;知云文献翻译以其专业度和便捷性赢得了众多用户的青睐&#xff0c;但市场上还有许多其他翻译工具同样值得关注。本文将为您推荐几款优秀的翻译工具。 Foxit在线翻译 链接&#xff1a; https://fanyi.pdf365.cn/ Foxit在线翻译以其高效的翻译速度和准…

创建第一个Qt项目

创建第一个QT项目 创建工程名称一般不要有特殊符号&#xff0c;不要有中文 项目工程保存路径可修改&#xff0c;路径不要带中文 Base class中的三个选项 QMainWindow:主窗口类&#xff0c;包括菜单栏、工具栏、状态栏。 QWidget:可以创建一个空白的窗口&#xff0c;是所有界…

嵌入式软件--数据结构与算法 DAY 13

在嵌入式中&#xff0c;对算法的要求不高&#xff0c;但顺序查找和冒泡排序是经典算法&#xff0c;必须掌握。 1.算法定义 算法是一个用于解决特定问题的有限指令序列&#xff08;计算机可以执行的操作&#xff09;。通俗的理解就是可以解决特定问题的方法。 2.时间复杂度 …

手动和torch.nn实现卷积神经网络、空洞卷积、残差网络

一、数据集 1. 分类问题 数据集——车辆分类数据 ⚫输入图片,输出对应的类别 ⚫共1358张车辆图片 ⚫分别属于汽车、客车和货车三类 ⚫汽车:779张 ⚫客车:218张 ⚫货车:360张 ⚫每个类别随机取20-30%当作测试集 ⚫各图片的大小不一,需要将图片拉伸到相同大小 汽车 …

three.js 安装方法、基础简介、创建基础场景

threejs简介 Three.js是一个基于JavaScript编写的开源3D图形库&#xff0c;‌利用WebGL技术在网页上渲染3D图形。‌ 它提供了许多高级功能&#xff0c;‌如几何体、‌纹理、‌光照、‌阴影等&#xff0c;‌使得开发者能够快速创建复杂且逼真的3D场景。‌ threejs提供了丰富的功…

云原生日志Loki

1. Loki简介 1.1 Loki介绍 Loki是 Grafana Labs 团队最新的开源项目&#xff0c;是一个水平可扩展&#xff0c;高可用性&#xff0c;多租户的日志聚合系统。它的设计非常经济高效且易于操作&#xff0c;因为它不会为日志内容编制索引&#xff0c;而是为每个日志流编制一组标签…

关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法

1.配置idea的npm 2.点击运行按钮 3.结果 分析原因及问题&#xff1a; npm i npm run dev 由于是刚刚从gitlab新拉的前端代码&#xff0c;可能没有用命令install过类似于没有编译过&#xff0c;所以执行一下上面的命令 结果报错如下&#xff1a; F:\tbyf\qjyy\hip-manager-ui&…

SpringBoot整合MyBatis-Plus完整详细版(提供Gitee源码)

前言&#xff1a;本篇文章完整详细介绍了SpringBoot整合MyBatis-Plus的完整过程&#xff0c;这边我的SpringBoot版本是2.4版本、JDK1.8和Maven3.8.1版本&#xff0c;跟着文章一步步走就可以了&#xff0c;MyBatis-Plus整合非常方便&#xff0c;也是现在企业开发中经常会用的一个…

学习笔记第二十四天

1.exec族函数的区别 int exec l(const char *path, const char *arg, ...); int exec l p(const char *file, const char *arg, ...); int exec l e(const char *path, const char *arg,..., char * const envp[]); int exec v(const char *path, char *const argv[]); …

1011 World Cup Betting

题目 解释 题目讲的就是&#xff0c;给你三行数&#xff0c;每一行包含3个浮点小数&#xff0c;让你找到最大的那个小数&#xff0c;然后如果最后的小数是第一个&#xff0c;输出W&#xff0c;是第二个&#xff0c;输出T&#xff0c;是第三个&#xff0c;输出L&#xff0c;最后…

Day37 | 188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

语言 Java 188.买卖股票的最佳时机IV 买卖股票的最佳时机IV 题目 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xff0c;你最多…

Broken: Gallery靶机复现

靶机设置 靶机设置为NAT模式 靶机IP发现 nmap 192.168.112.0/24 靶机IP为192.168.112.142 目录扫描 dirsearch 192.168.112.142 访问浏览器 发现文件页面 查看后发现都没什么用 getshell hydra -L rockyou.txt -P rockyou.txt 192.168.112.142 ssh 尝试爆破ssh账号密码…

互联网应用主流框架整合【Redis常用技术】

和其他大部分NoSQL不同&#xff0c;Redis是支持事务的&#xff0c;尽管没有数据库那么强大&#xff0c;但非常有用&#xff0c;在某些高并发但又要保证高度一致性的场景下&#xff0c;代替数据库事务非常有效&#xff1b;在Redis的机制中&#xff0c;允许通过流水线一次性发给R…

DATAX自定义KafkaWriter

因为datax目前不支持写入数据到kafka中&#xff0c;因此本文主要介绍如何基于DataX自定义KafkaWriter&#xff0c;用来同步数据到kafka中。本文偏向实战&#xff0c;datax插件开发理论宝典请参考官方文档&#xff1a; https://github.com/alibaba/DataX/blob/master/dataxPlug…

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第二弹 手搓机械臂

第一弹赛题的选择与前期方案的准备 opencv调用摄像头bug的解决 机械臂的组装 采用三个舵机&#xff0c;组成一个三自由度的机械臂。 并且利用电磁吸盘的方式&#xff0c;完成对棋子的抓取工作&#xff0c;后面的事实证明&#xff0c;在预算不足的情况下&#xff0c;队友手搓…