链式队列的实现
//1:创建循环队列
//2:判空
//4:入队
//5:出队
//6:遍历
//7:队列长度
//8:销毁

main.c
#include"loop.h"
int main(int argc, const char *argv[])
{loop_p L=loop_create();//创建loop_empty(L);//判空loop_length(L);//长度loop_input(L,10);//入队loop_input(L,11);loop_input(L,12);loop_input(L,13);loop_input(L,14);loop_show(L);//遍历loop_length(L);//长度loop_output(L);//出队loop_output(L);loop_show(L);//遍历loop_length(L);//长度loop_free(L);//释放return 0;
}
loop.c
#include"loop.h"//创建链队列
loop_p loop_create()
{loop_p L=(loop_p)malloc(sizeof(loop));if(NULL==L){printf("---创建失败!---");return NULL;}L->front=(node_p)malloc(sizeof(node));if(NULL==L->front){printf("---申请节点失败!---");free(L);return NULL;}L->front->len=0;L->front->next=NULL;L->tail=L->front;printf("---创建链队列成功---\n");return L;
}
//判空
int loop_empty(loop_p L)
{if(L==NULL){printf("---入参为空,请检查---\n");return 0;}//队头队尾相等则队列为空return L->front==L->tail;
}//入队
int loop_input(loop_p L,datatype data)
{if(L==NULL){printf("---入队失败,请检查---\n");return 0;}//申请节点失败node_p new=(node_p)malloc(sizeof(node));if(new==NULL){printf("---申请节点失败---\n");return 0;}new->data=data;new->next=NULL;//尾插L->tail->next=new;L->tail=new;L->front->len++;return 1;
}
//出队
int loop_output(loop_p L)
{if(L==NULL||loop_empty(L)){printf("---出队失败,请检查---\n");return 0;}node_p p=L->front->next;L->front->next=p->next;free(p);if(L->front->next==NULL){L->tail=L->front;}L->front->len--;return 1;
}
//遍历
int loop_show(loop_p L)
{if(L==NULL||loop_empty(L)){printf("---遍历失败,请检查---\n");return 0;}printf("链队列为:");node_p p=L->front;while(p->next!=NULL){p=p->next;printf("%d->",p->data);}printf("NULL\n");return 1;
}
//队列长度
void loop_length(loop_p L)
{if(L==NULL){printf("---输出队列长度失败,请检查---\n");return;}printf("队列长度为:%d\n",L->front->len);return;
}
//销毁
void loop_free(loop_p L)
{if(L==NULL){printf("---销毁失败!---\n");return;}while(L->front->next!=NULL){loop_output(L);}free(L->front);L->front=NULL;L->tail=NULL;free(L);L=NULL;printf("---销毁循环队列成功---\n");return;
}
loop.h
#ifndef __LOOP_H__
#define __LOOP_H__#include<stdio.h>
#include<stdlib.h>
#include<string.h>typedef int datatype;typedef struct node
{union{int len;datatype data;};struct node *next;
}node,*node_p;typedef struct loop
{node_p front;//队头node_p tail;//队尾
}loop,*loop_p;//1:创建循环队列
loop_p loop_create();
//2:判空
int loop_empty(loop_p L);
//4:入队
int loop_input(loop_p L,datatype data);
//5:出队
int loop_output(loop_p L);
//6:遍历
int loop_show(loop_p L);
//7:队列长度
void loop_length(loop_p L);
//8:销毁
void loop_free(loop_p L);
#endif
结果

相关文章:
链式队列的实现
//1:创建循环队列 //2:判空 //4:入队 //5:出队 //6:遍历 //7:队列长度 //8:销毁 main.c #include"loop.h" int main(int argc, const char *argv[]) {loop_p Lloop_create();//创建loop_empty(L);//判空loop_length(L);//长度loop_input(L,10);//入队loop_input(L,…...
深入剖析3D企业云展厅的价值,多维展示和精准营销的创新结合
一、3D企业云展厅的多维展示优势 1、全方位展示企业展品 3D企业云展厅通过3D建模技术为企业提供了全方位的展品展示平台。相比于传统平面的图片或视频,3D展厅能够让用户以任意角度观看展品,仿佛置身于真实展厅中。这种全方位展示不仅能够增加展品的真实…...
前台线程和后台线程(了解篇)
在多线程编程中,理解线程的不同类型对于编写高效、稳定的程序至关重要。特别地,前台线程(Foreground Threads)与后台线程(Background Threads)在行为上有着根本的区别,这些区别直接影响到程序的…...
最强文本编辑器 VIM 指令大全
Vim 是从 Vi 编辑器发展出来的一款极其强大的文本编辑器,它保留了 Vi 编辑器的所有功能,并添加了许多新特性。Vim 具有代码补全、语法高亮、错误跳转、批量化处理等编辑功能,还支持异常丰富的插件扩展,且整个编辑全程可通过键盘完…...
卤味江湖中,周黑鸭究竟该抓住什么赛点?
近年来,卤味江湖的决斗从未停止。 随着休闲卤味、佐餐卤味等细分赛道逐渐形成,“卤味三巨头”(周黑鸭、绝味食品、煌上煌)的牌桌上有了更多新对手,赛道变挤了,“周黑鸭们”也到了转型关键期。 这个夏天&a…...
2024年西安铁一中集训DAY1---- 杂题选讲
文章目录 牛客练习赛125 E 联谊活动(枚举,分讨)牛客练习赛125 F 玻璃弹珠(类莫队,离线询问,数据结构)2024ccpc长春邀请赛 D Parallel Lines(随机化)2024ccpc长春邀请赛 E…...
Python爬虫:BeautifulSoup的基本使用方法!
1.简介 Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析“标签树”等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。 Beautiful Soup…...
【自监督学习】DINO in ICCV 2021
一、引言 论文: DINO: Emerging Properties in Self-Supervised Vision Transformers 作者: Facebook AI Research 代码: DINO 特点: 对于一张图片,该方法首先进行全局和局部的裁剪与增强并分别送入教师和学生网络&am…...
使用simulink进行esp32开发,进行串口收发数据需要注意的地方,为什么收发不成功
1,主要是因为simulink里的配置文件配置的波特率和串口接受软件配置的波特不一致导致的 2,主要有以下三个界面 a.配置文件 b.模型 模型直接选择使用的是那组串口就行了,一般情况下我们收发使用同一组就可以,这样收发模块填写的端…...
多周期路径的约束与设置原则
本节将回顾工具检查建立保持时间的原则,接下来介绍设置多周期后的检查原则。多周期命令是设计约束中常用的一个命令,用来修改默认的建立or保持时间的关系。基本语法如下 默认的建立时间与保持时间的检查方式 DC工具计算默认的建立保持时间关系是基于时钟…...
【算法】反转链表
难度:简单 题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例: 示例1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例2: 输入:head [] 输出…...
DevEco Studio No device 无法识别 usb 设备 - 鸿蒙
DevEco Studio IDE 版本与手机系统版本升级后出现了 USB 连接设备后 IDE 无法识别 no device 的情况出现; 解决办法 首先,确定当前 DevEco Studio 的 IDE 版本与移动设备的大版本保持一致; 其次,在版本相互匹配的情况下,查看移动设备是否开启了开发者模式与 USB 调试,具体步骤…...
WebRTC API接口教程:实现高效会议的步骤?
WebRTC api接口教程如何使用?WebRTC api接口的功能? WebRTC无需中间服务器即可传输音视频流,为视频会议、在线教育等应用提供了强大的支持。AokSend将详细介绍如何利用WebRTC API接口实现高效会议的步骤。 WebRTC API接口教程:获…...
MinIO - 服务端签名直传(前端 + 后端 + 效果演示)
目录 开始 服务端签名直传概述 代码实现 后端实现 前端实现 效果演示 开始 服务端签名直传概述 传统的,我们有两种方式将图片上传到 OSS: a)前端请求 -> 后端服务器 -> OSS 好处:在服务端上传,更加安全…...
使用getopt处理参数
文章目录 使用getopt处理参数1. shift 命令1.1 删除一个参数1.2 删除多个参数1.3 多次执行 shift 参数1.4 参数解析示例1.5 优化处理1.6 问题处理 2. getopt 命令2.1 常用参数及示例2.2 脚本参数优化示例2.3 参数校验 3. 示例展示4. eval 命令4.1 示例示例 1示例 2示例 3示例 4…...
图像搜索技术在司法证据分析中的应用:思通数科大模型的创新实践
引言 在司法侦查过程中,图像和视频证据的分析对于案件的侦破至关重要。随着人工智能技术的快速发展,图像搜索技术已成为司法领域的关键工具。本文将探讨如何结合思通数科的大模型,利用图像搜索技术对案件中的图片或视频证据进行深度分析&…...
python使用多进程,传入多个参数?
先展示一下我的多进程代码: def process_image(image_path_list):# 获取模板以及类别名template_feature {}template_image cv2.imread(image_path_list)template_feature[curr_template_name] template_imageinput_image cv2.imread(img)template_feature[inp…...
李彦宏: 开源模型是智商税|马斯克: OpenAI 闭源不如叫 CloseAI
在 2024 年世界人工智能大会(WAIC 2024)上,百度创始人、董事长兼首席执行官李彦宏发表对开源模型的评价。 李彦宏认为:开源模型实际上是一种智商税,而闭源模型才是人工智能(AI)行业的未来。 马…...
怎么参与场外期权?场外期权交易要注意什么?
今天带你了解怎么参与场外期权?场外期权交易要注意什么?场外期权(OTC Options)是指在交易所之外进行的期权交易。与场内期权(交易所挂牌交易)不同,场外期权交易由交易双方私下协商确定合约条款&…...
Postman脚本炼金术:高级数据处理的秘籍
🤖 Postman脚本炼金术:高级数据处理的秘籍 Postman不仅是API测试的强大工具,它的脚本功能同样能够在数据处理方面大放异彩。无论是在请求之前设置环境,还是测试后验证结果,Postman的脚本都能提供强大的数据处理能力。…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...

