单向链表队列

实现单向链表队列的,创建,入队,出队,遍历,长度,销毁。

 queue.h

#ifndef __QUEUE_H__
#define __QUEUE_H__#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 30
typedef int datatype;
typedef struct node
{union{int len;datatype data;};struct node *next;
}node;
typedef struct loop
{node *front;node *tail;
}queue, *queue_p;queue_p create();
int empty(queue_p Q);
int full(queue_p Q);
void add(queue_p Q, datatype num);
void show(queue_p Q);
void pop(queue_p Q);
void lenth(queue_p Q);
void free_queue(queue_p Q);#endif

main.c 

#include "queue.h"int main()
{queue_p Q = create();add(Q, 1);add(Q, 2);add(Q, 3);add(Q, 4);show(Q);pop(Q);show(Q);lenth(Q);free_queue(Q);return 0;
}

queue.c 

#include "queue.h"//创建queue_p create()
{queue_p Q = (queue_p)malloc(sizeof(queue));if(NULL == Q){printf("失败\n");return NULL;}Q -> front  = NULL;Q -> tail = NULL;Q -> front = (node*)malloc(sizeof(node));if(Q -> front == NULL){printf("失败\n");free(Q);Q = NULL;return NULL;}Q -> front -> len = 0;Q -> tail = Q -> front;return Q;}
//判空
int empty(queue_p Q)
{if(NULL == Q){printf("失败");return 0;}return Q -> tail == Q -> front;
}//入队
void add(queue_p Q, datatype data)
{if(NULL == Q){printf("失败\n");return;}node * p = (node *)malloc(sizeof(node));p -> data = data;Q -> tail -> next = p;Q -> tail = p;Q -> front -> len++;}
//遍历
void show(queue_p Q)
{if(NULL == Q || empty(Q)){printf("空\n");return;}printf("队列的元素为:");node *p = Q -> front -> next;do{printf("%d", p -> data);p = p -> next;}while(p != NULL);putchar(10);
}//出队
void pop(queue_p Q)
{if(NULL == Q || empty(Q)){printf("空");return;}node *p = Q -> front -> next;Q -> front -> next = p -> next;if(Q -> front -> next == NULL){Q -> tail = Q -> front;}free(p);p = NULL;Q -> front -> len--;}
//队长
void lenth(queue_p Q)
{if(NULL == Q){printf("失败");return;}printf("队列长度为:%d\n", Q -> front -> len);
}
//销毁
void free_queue(queue_p Q)
{if(NULL == Q){printf("销毁失败\n");return;}while(!empty(Q)){pop(Q);}free(Q -> front);printf("销毁成功\n");
}

实现效果 

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

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

相关文章

大语言模型里的微调vs RAG vs 模板提示词

文章目录 介绍微调&#xff08;Fine-tuning&#xff09;定义优点&#xff1a;缺点&#xff1a;应用场景&#xff1a;技术细节 检索增强生成&#xff08;RAG&#xff0c;Retrieval-Augmented Generation&#xff09;定义优点&#xff1a;缺点&#xff1a;应用场景&#xff1a;技…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥派生(ArkTS)】

密钥派生(ArkTS) 以HKDF256密钥为例&#xff0c;完成密钥派生。具体的场景介绍及支持的算法规格。 开发步骤 生成密钥 指定密钥别名。 初始化密钥属性集&#xff0c;可指定参数HUKS_TAG_DERIVED_AGREED_KEY_STORAGE_FLAG&#xff08;可选&#xff09;&#xff0c;用于标识基…

jvm 06 补充 OOM 和具体工具使用

1.OOM 是什么 OOM&#xff0c;全称“Out Of Memory”&#xff0c;翻译成中文就是“内存用完了”&#xff0c;来源于java.lang.OutOfMemoryError。看下关于的官方说明&#xff1a; Thrown when the Java Virtual Machine cannot allocate an object because it is out of memor…

三角函数 积化和差、和差化积公式

积化和差公式 公式1 s i n A ⋅ s i n B − 1 2 [ c o s ( A B ) − c o s ( A − B ) ] \mathrm{sin}A\cdot\mathrm{sin}B-\dfrac{1}{2}[\mathrm{cos}(AB)-\mathrm{cos}(A-B)] sinA⋅sinB−21​[cos(AB)−cos(A−B)]. − 1 2 [ c o s ( A B ) − c o s ( A − B ) ] -\dfra…

电机学-绪论

绪论 电机&#xff1a;根据电磁感应定律和电磁力定律实现机电能量转换和信号传递与转换的电磁机械装置。 电磁感应定律&#xff1a; BiliBili: 法拉第电磁感应定律 BiliBili: 楞次定律 BiliBili: 左手定则、右手定则、右手螺旋定则

数据结构JAVA

1.数据结构之栈和队列 栈结构 先进后出 队列结构 先进先出 队列 2.数据结构之数组和链表 数组结构 查询快、增删慢 队列结构 查询慢、增删快 链表的每一个元素我们叫结点 每一个结点都是独立的对象

对于多个表多个字段进行查询、F12查看网页的返回数据帮助开发、数据库的各种查询方式(多对多、多表查询、子查询等)。

对于多个表多个字段进行查询、F12查看网页的返回数据帮助开发、数据库的各种查询方式&#xff08;多对多、多表查询、子查询等&#xff09;。 一、 前端界面需要展现多个表的其中几个数据的多表查询。1. 三个表查询其中字段返回&#xff1a;&#xff08;用一下sql语句&#xff…

【概率统计】从统计角度理解AUC:一步步揭开神秘面纱

从统计角度理解AUC&#xff1a;一步步揭开神秘面纱 在机器学习和数据分析领域&#xff0c;AUC&#xff08;Area Under the Curve&#xff09;是一个常用的评估指标&#xff0c;但对很多人来说&#xff0c;它的统计意义和计算过程有些晦涩。本文将用通俗易懂的语言&#xff0c;…

Redis的入门导读(一)

目录 单机架构 分布式系统 个人总结 一.Redis的介绍 二.Redis特性 三.Redis的快原因 四.Redis的应用场景 五.Redis的总结 由于Redis和分布式系统息息相关&#xff0c;因此我们需要先了解一下&#xff0c;分布式系统&#xff01; 接下来就是分布式系统的演化过程。 单…

PG在还没有pg_class的时候怎么访问基础系统表?

在没有pg_class的时候&#xff0c;数据库怎么访问系统表&#xff1f;这个问题可以分成两个阶段来看&#xff1a; 数据库簇初始化&#xff0c;此时一个database都没有&#xff0c;所以怎么构造和访问pg_class等系统表是一个问题私有内存初始化系统表。PG的系统表信息是放在back…

JavaScript(7)——数组

JavaScript中数组的用法与Java差不多&#xff0c;但还是有一些区别 声明数组 语法: let 数组名 [数据1,数据2,数据...] let arr new Array(数据1,数据2,...数据n) 添加数据 数组.push()方法将一个或多个元素添加到数组末尾&#xff0c;并返回该数组新长度 <script>…

机器学习(五) -- 监督学习(7) --SVM1

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;6&#xff09; --逻辑回归 下篇&#xff1a; 前言 tips&#xff1a;标题前有“***”的内容为补充内容&#xff0c;是给好奇心重的宝宝看的&#xff0c;可自行跳过。文章内容被…

如何写好品牌宣传稿提升品牌曝光?看这篇文章就够了

在这个信息爆炸的时代&#xff0c;一句精炼而富有力量的宣传语&#xff0c;足以让品牌在万千竞争者中脱颖而出。撰写一篇成功的品牌宣传稿&#xff0c;不仅是对文字艺术的驾驭&#xff0c;也是对品牌灵魂的深刻洞察与精准传达&#xff0c;更是连接品牌与消费者情感与认知的桥梁…

2024前端面试真题【Vue篇】

Vue 的虚拟DOM 虚拟DOM 虚拟DOM是真实DOM的JavaScript表示。它是一个轻量级的JavaScript对象&#xff0c;可以表示DOM的结构和属性&#xff0c;虚拟DOM与真实DOM一一对应。 在Vue中&#xff0c;每个Vue组件都会维护一个对应的虚拟DOM树。当组件的数据发生变化时&#xff0c;…

蚁剑编码器编写——php木马免杀

蚁剑编码器编写——php木马免杀 我的想法是 木马要先免杀&#xff0c;能够落地&#xff0c;再去考虑流量层面的问题 举几个例子演示一下 命令执行与代码执行是有比较大的区别&#xff0c;蚁剑执行的是php代码&#xff0c;而system&#xff0c;proc_open,passthru,exec,shell_…

Adobe Illustrator 2021 for mac/Win:专业矢量图形设计的巅峰之作

Adobe Illustrator 2021作为Adobe公司旗下的旗舰矢量图形设计软件&#xff0c;无论是对于Mac还是Windows用户&#xff0c;都提供了强大而灵活的设计工具&#xff0c;让设计师们能够轻松应对各种复杂的图形设计挑战。这款软件以其卓越的性能、丰富的功能和友好的用户界面&#x…

后悔没早点考?揭晓六西格玛证书背后的惊人好处

在这个竞争激烈的时代&#xff0c;不断提升自我价值和专业能力是每个职场人士都需要面对的问题。而六西格玛证书&#xff0c;作为一个备受瞩目的职业资格认证&#xff0c;其背后的好处和价值已经远超出了人们的想象。深圳天行健企业管理咨询公司解析如下&#xff1a; 一、提升职…

镍氢电池性能不减,你敢信?

在科技领域&#xff0c;研究者的探索永无止境&#xff0c;尤其在可再生能源和电动交通工具迅速发展的今天&#xff0c;一种成熟的可充电电池技术——镍氢电池&#xff0c;在多个领域中发挥着至关重要的作用。它不仅环保、高效&#xff0c;还具有出色的循环次数特性&#xff0c;…

MySQL Undo Log

总结自bojiangzhou undo log称为撤销日志或回滚日志。在一个事务中进行增删改操作时&#xff0c;都会记录对应的 undo log。在对数据库进行修改前&#xff0c;会先记录对应的 undo log&#xff0c;然后在事务失败或回滚的时候&#xff0c;就可以用这些 undo log 来将数据回滚到…

除自身以外数组的乘积_前缀和

文章目录 1、描述2、思路4、notes6、code 1、描述 题目链接 238.除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素…