C语言实现链队列的初始化&进队&出队
Code
- /*链表实现队列的一系列操作*/
- #include<stdio.h>
- #include<stdlib.h>
- #define OK 1
- #define ERROR 0
- typedef struct node
- {
- int data; //数据域
- struct node *next; //指针域
- }LinkQueueNode;
- typedef struct
- {
- LinkQueueNode *front; //头指针
- LinkQueueNode *rear; //尾指针
- }LinkQueue;
- /**********************各个子函数的定义*********************/
- void initQueue(LinkQueue *Q); //链队列初始化
- int enterQueue(LinkQueue *Q,int n); //链队列入队操作
- void deleteQueue(LinkQueue *Q); //链队列出队操作
- int main()
- {
- LinkQueue Q;
- int choice;
- while(true)
- {
- printf("*****************Please enter your choice*****************\n\n");
- printf(" choice 1:Queue initialization\n");
- printf(" choice 2:Into the queue\n");
- printf(" choice 3:Out of the queue\n");
- printf(" choice 0:exit\n\n");
- scanf("%d",&choice);
- switch(choice)
- {
- case :
- initQueue(&Q);
- break;
- case :
- int n;
- printf("Please enter the number into the queue elements:");
- scanf("%d",&n);
- (enterQueue(&Q,n)==)?printf("%d个元素依次进队成功\n",n):printf("%d个元素依次进队失败\n",n);
- break;
- case :
- deleteQueue(&Q);
- break;
- case :
- exit();
- break;
- default:
- printf("ERROR!!\n");
- exit();
- break;
- }
- }
- return ;
- }
- /**********************各个子函数功能的实现*********************/
- void initQueue(LinkQueue *Q)
- { //将 Q 初始化为一个空链队列
- Q->front=(LinkQueueNode *)malloc(sizeof(LinkQueueNode));
- Q->rear=Q->front;
- Q->front->next=NULL;
- }
- int enterQueue(LinkQueue *Q,int n) //进队列
- {
- LinkQueueNode *temp;
- int n1,n2;
- printf("Please enter into the queue elements in turn:\n");
- for(n1=;n1<n;n1++)
- {
- scanf("%d",&n2);
- temp=(LinkQueueNode *)malloc(sizeof(LinkQueueNode));
- if(temp==NULL) return ERROR; //申请空间失败
- temp->data=n2;
- temp->next=NULL;
- Q->rear->next=temp;
- Q->rear=temp; //队尾指针后移
- }
- return OK;
- }
- void deleteQueue(LinkQueue *Q)
- {
- int a;
- LinkQueueNode *temp;
- if(Q->front==Q->rear) //队为空,出栈失败
- {
- printf("An empty Queue error!!!!\n");
- }
- else
- {
- temp=Q->front->next;
- a=temp->data;
- Q->front->next=temp->next;
- if(Q->front==temp) //如果队中只有一个元素X,则X出队后成为空队
- {
- Q->rear=Q->front;
- }
- free(temp); //释放存储空间
- printf("队顶元素%d出队成功.\n",a);
- }
- }
C语言实现链队列的初始化&进队&出队的更多相关文章
- C语言实现循环队列的初始化&进队&出队&读取队头元素&判空-2
/*顺序表实现队列的一系列操作(设置flag标志不损失数组空间)*/ #include<stdio.h> #include<stdlib.h> #define Queue_Si ...
- C语言实现链栈的初始化&进栈&出栈&读取栈顶元素
/*链表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typede ...
- 队列的C++实现(数组)——创建-进队-出队-返回队首元素-清空队列栈-处理队列
队列的数组实现,从队尾进入,对头删除. 队列长度用标志变量size,它是独立于front和rear的一个变量.size == 0,队列为空.size == capacity,满队列. 一.结点声明 s ...
- 队列的含义以及C语言实现顺序队列
队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构. 什么是队列 与栈结构不同的是,队列的两端都"开口",要求数据只能从 ...
- C语言实现循环队列
今日在处理数据存储的问题中,数据占用的空间较大,在询问之下,提及循环队列. 没有学习过的我,想想就是头大,只能慢慢从网上找资料,一个字母一个字母的敲,最后,还是慢慢的对队列有了一些理解 对于循环队列有 ...
- C语言数据结构-链式队列的实现-初始化、销毁、清空、长度、队列头元素、插入、删除、显示操作
1.数据结构-链式队列的实现-C语言 typedef struct QNode { int data; struct QNode *next; }QNode,*QueuePtr; typedef st ...
- 数据结构 - 链队列的实行(C语言)
数据结构-链队列的实现 1 链队列的定义 队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已, 我们把它简称为链队列.为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指 ...
- C语言实现链式队列
链式队列,简称"链队列",即使用链表实现的队列存储结构. 链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素, ...
- C语言——循环队列和链队列的基本运算
// 循环队列#include <stdio.h> #include "SeqQue.h" // 循环队列的基本运算 /* const int maxsize = 20 ...
随机推荐
- 一小时学会ECMAScript6新特性(一)
ECMAScript 简介 简称es,是一套标准,javascript就是使用这套标准的语言.主流的浏览器使用的是ECAMScript5,ECAMScript6(ECAMScript2015)是一涛新 ...
- PHP 关于判断输入日期是否合法
合法要求 一年仅十二个月 4,6,9,11月仅30天,1,3,5,7,8,10,12月仅31天 闰年2月29天,否则28天 输入的变量年,月,日为数字 代码: <?php //PHP中判断输入的 ...
- Navicat Premium 12 (64位)实现连接Oracle 11 (64位)
查看Oracle的版本 select * from v$version 我这里是11.2的64位的版本,然后从官网下载相应版本的客户端. 下载相应版本的客户端 官网地址:https://www.ora ...
- 新装云服务器没有iptables 文件,并且无法通过service iptables save操作
在安装zookeeper时,需要放开端口2181 按照视频教程在 /etc/sysconfig/ 下对iptables 文件进行编辑,但是该目录下没有此文件 通过强行写iptables -P OUT ...
- S2.1 修复图像小程序(简单版)
用OpenCV自带的inpaint()演示 CV_EXPORTS_W void inpaint( InputArray src, InputArray inpaintMask, OutputArray ...
- 微信小程序开发---视图层(View)
WXML WXML能力: 数据绑定 列表渲染 条件渲染 模板 事件 数据绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可作用于内容,组件属性(需要在双引号之内),控制属性(需要在 ...
- CSS-单位em 和 rem
1,em单位(css3新增单位) em:就是一种长度单位,它是参照当前元素的字号,如果没有设置,就参照父容器,一直到浏览器的默认字号大小 em 是相对长度单位(参照父元素),其参照当前元素字号大小,如 ...
- vue + websocket 的使用
阳光正好,我们正在努力前行. 一.引言 初始使用websocket ,一开始看文档的时候,觉得很简单,只需要创建websocket实例,然后有几个监听打开连接,监听关闭连接,监听连接异常等方法.但是, ...
- Session Cookie介绍和使用
Cookie机制 Cookie机制 Cookie是服务器存储在本地计算机上的小块文本,并随每个请求发送到同一服务器. IETF RFC 2965 HTTP状态管理机制是一种通用的cookie规范. W ...
- window server 2008 安装Oracle10g
oracle安装都大同小异. 开始安装步骤 输入完之后点击下一步 这时候稍等一会儿. 这时候也要稍等一会儿. 直接安装. 设置口令管理,设置SCOTT的密码为tiger就好了. 这时候稍等一会儿. o ...