#include<stdio.h>
#include<stdlib.h>
//函数说明
createqueue(Q);
deletequeue(Q);
insertqueue(Q);
show(Q);#define true        1
#define false       0
#define ok          1
#define error       0
#define infeasible  1
#define overflow    0  typedef struct qnode{int data;struct qnode *next;
}qnode,*queueptr;typedef struct{queueptr front;//队头指针queueptr rear;//队尾指针
}linkqueue;//主函数
main()
{linkqueue Q;int j;createqueue(&Q);do                                 {printf("        ╔-----------------------------------------------╗\n");              //显示一个简易菜单printf("        ┆        1 -- 创建            2 -- 入队         ┆\n");printf("        ┆        3 -- 出队            4 -- 退出         ┆\n");printf("        ╚-----------------------------------------------╝\n"); printf("请输入所要进行的操作序号:  ");scanf("%d",&j);                                   //接受用户的选择switch(j)                                           //接受用户的函数    {case 1:{createqueue(&Q);show(&Q);break;};case 2:{insertqueue(&Q);show(&Q);break;}case 3:{deletequeue(&Q);show(&Q);break;}case 4:break;default:printf("错误选择!请重选\n");break;}}while(j!=4);    //直到i被赋值为5return 0; }
//构造一个空队列
createqueue(linkqueue *Q)
{Q->front = Q->rear = (queueptr)malloc(sizeof(qnode));if(!Q->front) exit(overflow);Q->front->next=NULL;return ok;
}
//入队
insertqueue(linkqueue *Q)
{int e;queueptr p;p=(queueptr)malloc(sizeof(qnode));if(!p) exit(overflow);printf("enter element:    ");scanf("%d",&e);  //要入队的值p->data=e;p->next=NULL;Q->rear->next=p;Q->rear=p;return ok;
}
//删除队头元素
deletequeue(linkqueue *Q)
{queueptr p;if(Q->front == Q->rear) return error;p=Q->front->next;Q->front->next=p->next;if(Q->rear==p) Q->rear=Q->front;free(p);return ok;
}
//显示队列
show(linkqueue *Q)
{  queueptr cc;cc = Q->front->next;printf("new queue is :");while(cc!=NULL){printf(" %d ",cc->data);cc = cc->next;}printf("\n");}

子函数实现链式队列 的 操作,创建、入队、出队、退出。相关推荐

  1. 链式队列的基本操作(入队、出队、遍历队列、清空队列)

    链式队列是一种特殊的链表,只能在尾部添加,在头部删除,类似于排队问题,先入先出 代码如下 #include<stdio.h> #include<malloc.h> #inclu ...

  2. 刁肥宅手笔:纯C语言实现链式队列的相关操作

    先上图,以图服人: 图一 程序运行截图1 图二 程序运行截图2 上代码: 头文件LinkQueue.h: /*LinkQueue.h*/#ifndef LINKQUEUE_H_INCLUDED #de ...

  3. 链式队列,队列篇(链式队列的出队入队操作)

    数据结构,队列篇(链式队列) 前言: 上一篇博主简单讲解了顺序队列和循环队列,今天讲解队列最后一篇链式队,链式队在数据结构中用到比较多,用来做一些排队的算法,还有链式队列是也是和链式栈一样采用链表的方 ...

  4. (c语言数据结构)用链式队列的方式实现输入12345,输出12345操作——期末数据结构程序设计

    用链式队列的方式实现输入12345,输出12345操作 文章目录 用链式队列的方式实现输入12345,输出12345操作 1.队列的定义 2.队列的初始化 3.判空操作 4.入队操作 5.出队操作 6 ...

  5. 数据结构之顺序队列和链式队列常用的一些操作

    顺序队列是队列的顺序存储结构,顺序队列实际上是运算受限的顺序表.和顺序表一样,顺序队列用一个向量空间来存放当前队列中的元素.由于队列的队头和队尾的位置是变化的,设置两个指针front和rear分别指示 ...

  6. 数据结构 - 队列简介 及 1个简单的c语言链式队列代码实现

    1. 队列的定义 所谓队列(queue)就是一种能实现"先进先出"的一种线性存储结构. 跟栈有点类似,  例如栈只有1个出入口, 任何元素进入或者离开栈都必须经过同1个出入口(栈顶 ...

  7. 数据结构——链式队列解析(C语言版)

    摘自:数据结构学习--链式队列解析(C语言版) 作者:正弦定理 发布时间:2020-11-26 21:07:08 网址:https://blog.csdn.net/chinesekobe/articl ...

  8. (C语言版)栈和队列(一)——实现链式栈和链式队列的基本操作以及遇到的问题

    http://blog.csdn.net/fisherwan/article/details/20055179 首先要感谢这位大牛的一篇博客,地址如下:http://blog.csdn.net/hgu ...

  9. 数据结构上机实践第七周项目2 - 自建算法库——链队(链式队列)

    自建算法库--链队(链式队列) 实现源代码如下: 1.liqueue.h /* copyright (t) 2016,烟台大学计算机学院 *All rights reserved. *文件工程名称:1 ...

最新文章

  1. 360浏览器如何保存html文件夹下,在360浏览器中将书签保存的详细步骤
  2. G - Shuffle‘m Up POJ - 3087
  3. leetcode 169. 多数元素(不同数相消解法)
  4. how does UI Framework get url of detail page - _router
  5. 荣耀20 Pro三色渲染图曝光:后置潜望式镜头+3D ToF镜头
  6. 《重构HTML改善Web应用的设计》读书笔记
  7. 数据处理中的过采样、下采样、联合采样和集成采样
  8. wp8通过WebClient从服务器下载文件
  9. LM3886TF功放制作进展
  10. 吴式太极拳之北王-王茂斋先生
  11. android系统添加内置APP(自带.so)
  12. Android 9.0系统源码_SystemUI(四)通知图标控制器
  13. 【STM32训练—TOF激光测距模块】第一篇、STM32驱动TOF10120测量距离
  14. ubuntu18.04安装pcl库
  15. QQ无法访问个人文件夹,QQ,wx等程序无法正常启动
  16. 武大计算机系雷军,马化腾739分、雷军700分系湖北状元!大佬们的高考成绩让人敬畏!...
  17. 大数据告诉你,北上广深哪里最容易吃到你的家乡味儿?
  18. 农业节水自动灌溉 ic射频卡机井灌溉控制器智能取水
  19. JavaScript基础知识点(学习李炎恢视频)
  20. Unity3D 快捷键

热门文章

  1. JWT认证原理、整合springboot实战应用
  2. 诗与远方:无题(二十二)
  3. Mybatis自学日志02
  4. mybatis中collection中的ofType=“String“时
  5. c++语言中for循环语句,C++ 循环
  6. Java基本数据类型和String类型的转化
  7. springboot面试
  8. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
  9. 生成树协议(STP)原理与配置PVST+实现负载均衡
  10. Linux命令之mv