当前位置: 首页 > ds >正文

数据结构:链式队列尝试;0826

链式队列

尝试了 没写出来。代码存档,如下

queuelink.c

#include"queue.h"
//1.申请 链式队列
queuelink_p creatlink()
{//申请 链表 头尾指针 结构体空间queuelink_p H=(queuelink_p)malloc(sizeof(queuelink));if(H==NULL)//申请空间失败{printf("申请空间失败\n");return NULL;}H->front=NULL;H->rear=NULL;return H;
}
//1.1申请 节点
queue_p creat_node(int V)
{//申请 链表 头尾指针 结构体空间queue_p N=(queue_p)malloc(sizeof(queue));if(N==NULL)//申请空间失败{printf("申请空间失败\n");return NULL;}N->data=V;N->next==NULL;return N;
}
//2.判空
int empty(queuelink_p H)
{       if(H==NULL)//入参为空{       printf("入参为空\n");return -1;}return H->front==NULL&&H->rear==NULL;
}
//4.入队
void push_rear(queuelink_p H,int V)
{       if(H==NULL)//入参为空{printf("入参为空\n");return ;}//申请节点queue_p N=creat_queue(V);//节点链接 入队 队尾if(H->front=NULL){H->front=N;}if(H->rear!=NULL){H->rear->next=N;}H->next=N;
}
//5.出队
int pop_que(queue_p H)
{       if(H==NULL)//入参为空{printf("入参为空\n");return ;}//判断队列为空if(empty(H)){printf("队列为空\n");return;}//出队 队头出queue_p D=H->front;//队头 指针 指向下一个H->front=H->front->next;//保留 出队的值int ret=D->data;//释放空间free(D);return ret;
}
//6.输出
void show_que(queuelink_p H)
{if(H==NULL)//入参为空{printf("入参为空\n");return ;}//判断队列为空if(empty(H)){printf("队列为空\n");return;}//S指针 输出值queue_p S=H->front;while(S!=NULL){printf("%d ",S->data);S=S->next;}
}
//7.求队列元素个数
int count_que(queuelink_p H);
//8.释放循环队列
void free_que(queuelink_p *H);

main.c

#include"queue.h"
int main()
{//1.申请队列queuelink_p H =creatlink();//4.入队for(int i=9;i>4;i--){push_rear(H,i);}//5.出队printf("出队的值为%d\n",pop_que(H));//6.输出show_que(H);return 0;
}

queue.h

#ifndef __QUEUE_H_ 
#define __QUEUE_H_ 1#include<stdio.h>
#include<stdlib.h>//链栈的节点 结构体
typedef struct node
{int data;struct node *next;
}queue,*queue_p;//链式队列 头 结构体
typedef struct queuelink
{struct node *front;struct node *rear;
}queuelink,*queuelink_p;//1.申请队列
queuelink_p creatlink();
//1.1申请节点
queue_p creat_node(int);
//2.判空
int empty(queuelink_p);
//4.入队
void push_rear(queuelink_p,int);
//5.出队
int pop_que(queuelink_p);
//6.输出
void show_que(queuelink_p);
//7.求队列元素个数
int count_que(queuelink_p);
//8.释放循环队列
void free_que(queuelink_p *);#endif

兄弟,是报错

牛客刷题

http://www.xdnf.cn/news/18975.html

相关文章:

  • 庖丁解牛:深入解析Oracle SQL语言的四大分类——DML、DDL、DCL、TCL
  • Rust 环境搭建与 SeekStorm 项目编译部署(支持中文)
  • Redis相关命令详解及其原理
  • MT** 时间指标全景图:从可靠性到可维护性的度量体系
  • LangGraph-2-Demo
  • CI/CD 全链路实践:从 Git 基础到 Jenkins + GitLab 企业级部署
  • Python 操作 PPT 文件:从新手到高手的实战指南
  • 线性代数中矩阵等价与离散数学中关系的闭包之间的关联
  • VScode,设置自动保存
  • Vue中的props方式
  • 多模态RAG架构:下一代跨模态智能检索系统的设计与实践
  • 视频合成素材视频-多合一功能-青柠剪吧
  • OpenTenBase核心技术解密:突破OLTP与OLAP边界的分布式数据库革新
  • 【PS实战】制作hello标志设计:从选区到色彩填充的完整流程(大学PS作业)
  • 百度IOS客户端岗位--面试真题分析
  • 【Docker基础】Docker-compose进阶配置:资源限制与高可用部署
  • 中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G+32G_开ADB安装软件教程
  • Web调用本地程序:Custom URL Scheme
  • Zookeeper(分布式RPC调用和分布式文件储存)
  • 2025年渗透测试面试题总结-35(题目+回答)
  • Radan钣金CAM解决方案在电气柜制造行业的应用案例
  • 物流配送路径规划项目方案
  • 【Doris】服务器配置
  • 深入浅出 ArrayList:从基础用法到底层原理的全面解析(下)
  • IDEA2022开启新版UI
  • 【嵌入式电机控制#进阶4】无感控制(二):观测器导论锁相环(全网最通俗易懂)
  • 【C++11】auto关键字:自动类型推导
  • MCP之weather server demo
  • 李沐-第十章-训练Seq2SeqAttentionDecoder报错
  • Leetcode top100之链表排序