用链式队列的方式实现输入12345,输出12345操作

文章目录

  • 用链式队列的方式实现输入12345,输出12345操作
    • 1.队列的定义
    • 2.队列的初始化
    • 3.判空操作
    • 4.入队操作
    • 5.出队操作
    • 6.打印出栈元素
    • 7.源代码
    • 8.结果展示
    • 9.互相关注!共同学习进步!

1.队列的定义

typedef struct LinkNode{ElemType data;struct LinkNode* next;
}LinkNode;
typedef struct {LinkNode* front, * rear;
}LinkQueue;

2.队列的初始化

void InitQueue(LinkQueue& Q) {Q.front = Q.rear = (LinkNode*)malloc(sizeof(LinkNode));Q.front->next = NULL;
}

3.判空操作

bool IsEmpty(LinkQueue Q) {if (Q.front == Q.rear)return true;elsereturn false;
}

4.入队操作

bool EnQueue(LinkQueue& Q,ElemType x) {LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));s->data = x;s->next = NULL;Q.rear->next = s;Q.rear = s;return true;
}

5.出队操作

bool DeQueue(LinkQueue& Q, ElemType& x) {if (Q.front == Q.rear)return false;LinkNode* p = Q.front->next;x = p->data;Q.front->next = p->next;if (p->next == Q.front)Q.rear = Q.front;free(p);return true;
}

6.打印出栈元素

void printQueue(LinkQueue Q) {LinkNode* p = Q.front->next;while (p!= NULL) {printf("\t元素%d出栈成功!\n", p->data);p = p->next;}printf("\n");
}

7.源代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 5
typedef int ElemType;
//队列的定义
typedef struct LinkNode{ElemType data;struct LinkNode* next;
}LinkNode;
typedef struct {LinkNode* front, * rear;
}LinkQueue;
//队列的初始化
void InitQueue(LinkQueue& Q) {Q.front = Q.rear = (LinkNode*)malloc(sizeof(LinkNode));Q.front->next = NULL;
}
//判空操作
bool IsEmpty(LinkQueue Q) {if (Q.front == Q.rear)return true;elsereturn false;
}
//入队操作
bool EnQueue(LinkQueue& Q,ElemType x) {LinkNode* s = (LinkNode*)malloc(sizeof(LinkNode));s->data = x;s->next = NULL;Q.rear->next = s;Q.rear = s;return true;
}
//出队操作
bool DeQueue(LinkQueue& Q, ElemType& x) {if (Q.front == Q.rear)return false;LinkNode* p = Q.front->next;x = p->data;Q.front->next = p->next;if (p->next == Q.front)Q.rear = Q.front;free(p);return true;
}
void printQueue(LinkQueue Q) {LinkNode* p = Q.front->next;while (p!= NULL) {printf("\t元素%d出栈成功!\n", p->data);p = p->next;}printf("\n");
}
int main() {LinkQueue Q;ElemType x;int i = 0;bool ret;printf("1.初始化队列\n");InitQueue(Q);printf("2.栈为:%s\n", (IsEmpty) ? "空" : "非空");printf("3.请依次入队:\n");while (i<MaxSize) {scanf("%d", &x);EnQueue(Q, x);printf("\t元素%d入栈成功!\n", x);i++;}printf("4.依次出队操作:\n");printQueue(Q);return 0;}

8.结果展示

输入:1 2 3 4 5
输出:12345

9.互相关注!共同学习进步!

文章目录

  • 用链式队列的方式实现输入12345,输出12345操作
    • 1.队列的定义
    • 2.队列的初始化
    • 3.判空操作
    • 4.入队操作
    • 5.出队操作
    • 6.打印出栈元素
    • 7.源代码
    • 8.结果展示
    • 9.互相关注!共同学习进步!

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

  1. (c语言)用链栈表的方式实现输入abcde,输出edcba操作——期末数据结构程序设计

    用链栈表的方式实现输入abcde,输出edcba操作,期末数据结构程序设计 文章目录 用链栈表的方式实现输入abcde,输出edcba操作,期末数据结构程序设计 1.链栈的定义 2.链栈的初始化 3. ...

  2. 【数据结构】链式队列的实现(C语言)

    队列的链式存储称为链式队列.链式队列就是一个特殊的单链表,对于这种特殊的单链表,它的插入和删除操作规定在单链表的不同端进行.链式队列的队首和队尾指针分别用front和rear表示. 链式队列要掌握以下 ...

  3. 链式存储结构 php,【PHP 实现数据结构】链式队列

    什么是链式队列 队列是一种"先进先出"的存储结构,是一种特殊的线性表,于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. 通常队列可以分为顺序队 ...

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

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

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

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

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

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

  7. c语言定义链式队列用菜单,数据结构之---C语言实现链式队列

    //链式队列的存储 //杨鑫 #include #include typedef int QElemType; //定义节点 typedef struct QNode { QElemType data ...

  8. c语言建立队列(顺序队列、循化队列和链式队列)

    c语言建立队列 一.顺序队列 队列的顺序存储结构 顺序队列的讨论 "下溢"现象 "真上溢"现象 "假上溢"现象 二.如何解决"假上 ...

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

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

最新文章

  1. 四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?
  2. 数据类型:Struct 和 Union区别
  3. JSON,java对象转json
  4. 用vue.js写的一个瀑布流的组件
  5. linux如何运行synaptic,Linux_Ubuntu 7.04 Synaptic软件包管理器功能,Ubuntu的新立得软件包管理器(Syn - phpStudy...
  6. vue devtools 插件安装
  7. 利用zabbix自动发现监控mongo数据库
  8. java单核多线程与多核多线程_多线程的程序在多核CPU与单核CPU运行效率有何不同 | 学步园...
  9. java中级工程师所需的技能_java中级工程师岗位职责
  10. SCL编写的阀门块实例
  11. linux中使用rpm命令详解
  12. 常见神经网络结构拓扑图
  13. php prepare错误,php环境错误,Loader.php报错
  14. 这可能是中国最穷的211大学!连研究生奖学金都发不起了....
  15. 【T3】登录提示运行时错误53,文件未找到
  16. HDLBites学习笔记之Error (10200): Verilog HDL Conditional Statement error at top_module
  17. 怎么做web接口测试
  18. 细谈网络同步在游戏历史中的发展变化(中)
  19. ppt生成eps文件_如何将AI/EPS格式文件转为ppt格式
  20. RAC生产数据库RMAN方式恢复到异地单机数据库全程记录

热门文章

  1. mysql学习过程中推荐的书籍
  2. ps连接服务器无响应,ps更新服务器未响应
  3. 做SEO和SEM有什么区别?哪个推广效果会更好?
  4. JavaScript实现双色球机选逻辑错误与正确的算法
  5. Android应用市场App发布
  6. 电子台账:模板制作之五——二级过滤与多条件组合
  7. if 语句的3种比较
  8. If……else if的多重判断
  9. java字符流的父类_Java基于代码实战的字符流父类、字符转换流、缓冲字符流、过滤流...
  10. 易优cms首页被劫持后台进不去怎么办