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

数据结构:队列的链表结构(含完整代码,可复制)

1.输出队列

void outlin(LinkQueue qq)
{p=qq.front->next;while(p!=NULL){printf(" data=%4d\n",p->data);p=p->next;}printf("\n outend \n\n");
}

2.入队一个元素

void insert(LinkQueue *qe,int x)
{s=(NodeType *)malloc(sizeof(NodeType));s->data=x;s->next=NULL;qe->rear->next=s;qe->rear=s;
}

3.出队一个元素

void  dele(LinkQueue *qe)
{ElemType x;if(qe->front==qe->rear){printf("队列为空。\n");x=0;}else{p=qe->front->next;qe->front->next=p->next;if(p->next==NULL) qe->rear=qe->front;x=p->data;printf("%d\n",x);free(p);}
}

5.建立链表队列

void creat(LinkQueue *qe)
{int i,n,x;h=(NodeType *)malloc(sizeof(NodeType));h->next=NULL;qe->front=h;qe->rear=h; printf("n=");scanf("%d",&n);for(i=1;i<=n;i++){printf("\n data=");scanf("%d",&x);insert(qe,x);}
}

6.完整代码

#include "stdio.h"
#include "stdlib.h"
typedef int ElemType; 
typedef struct NodeType
{ElemType data;struct NodeType *next;
}NodeType;
typedef struct
{NodeType *front,*rear;
}LinkQueue;
NodeType *p,*s,*h;
void outlin(LinkQueue qq);
void creat(LinkQueue *qe);
void insert(LinkQueue *qe,ElemType x); 
void dele(LinkQueue *qe);
main()
{LinkQueue que;ElemType  x,y;int cord;do{printf("\n 主菜单\n");printf("\n 1 建立链表队列\n");printf("\n 2 入队一个元素 X \n");printf("\n 3 出队一个元素\n");printf("\n 4 程序结束运行\n");printf("\n-------------------\n");printf("请输入您的选择(1,2,3,4)");scanf("%d",&cord);switch(cord){case 1:{creat(&que);outlin(que);}break;case 2:{printf("\n x=?");scanf("%d",&x);insert(&que,x); outlin(que);}break;case 3:{dele(&que);outlin(que);}break;case 4:exit(0);}}while(cord<=4);
}
void outlin(LinkQueue qq)
{p=qq.front->next;while(p!=NULL){printf(" data=%4d\n",p->data);p=p->next;}printf("\n outend \n\n");
}
void insert(LinkQueue *qe,int x)
{s=(NodeType *)malloc(sizeof(NodeType));s->data=x;s->next=NULL;qe->rear->next=s;qe->rear=s;
}void  dele(LinkQueue *qe)
{ElemType x;if(qe->front==qe->rear){printf("队列为空。\n");x=0;}else{p=qe->front->next;qe->front->next=p->next;if(p->next==NULL) qe->rear=qe->front;x=p->data;printf("%d\n",x);free(p);}
}void creat(LinkQueue *qe)
{int i,n,x;h=(NodeType *)malloc(sizeof(NodeType));h->next=NULL;qe->front=h;qe->rear=h; printf("n=");scanf("%d",&n);for(i=1;i<=n;i++){printf("\n data=");scanf("%d",&x);insert(qe,x);}
}

相关文章:

  • docker安装部署Elasticsearch(ES)以及相关配置
  • 井盖异动传感器,守护脚下安全
  • C++之类的静态成员
  • 文件操作(与文件相关)相关笔记
  • 代码随想录第六十三天——被围绕的区域,太平洋大西洋水流问题,最大人工岛
  • ubuntu 20.04部署brc20 ordinals铭文
  • Python科学计算进阶:数值积分与微分求解算法应用在Python
  • JAVA获取昨日和今日日期时间
  • C++ | 四、指针、链表
  • Maxwell数据同步(增量)
  • 2024年学鸿蒙开发就业前景怎么样?
  • NLP论文阅读记录 - 2021 | WOS01 通过对比学习增强 Seq2Seq 自动编码器进行抽象文本摘要
  • img标签的奇怪问题
  • ubuntu20.04+opencv+vscode
  • 基于Java (spring-boot)的社团管理系统
  • 时间复杂度分析经典问题——最大子序列和
  • 2017 年终总结 —— 在路上
  • GitUp, 你不可错过的秀外慧中的git工具
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript服务器推送技术之 WebSocket
  • Laravel5.4 Queues队列学习
  • LeetCode29.两数相除 JavaScript
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • PermissionScope Swift4 兼容问题
  • Promise面试题2实现异步串行执行
  • Python利用正则抓取网页内容保存到本地
  • SQLServer之创建数据库快照
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • WebSocket使用
  • Xmanager 远程桌面 CentOS 7
  • 码农张的Bug人生 - 初来乍到
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 数组的操作
  • 推荐一个React的管理后台框架
  • 正则表达式小结
  • 【干货分享】dos命令大全
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​iOS安全加固方法及实现
  • ​比特币大跌的 2 个原因
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (1) caustics\
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (2)(2.10) LTM telemetry
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (function(){})()的分步解析
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET基础篇——反射的奥妙
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • .stream().map与.stream().flatMap的使用
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构