这份代码是不是应该有BUG!!

为什么80%的码农都做不了架构师?>>>   hot3.png

#include"stdio.h"
#include"stdlib.h"
#include"math.h"
#include"io.h"
#include"time.h"


#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 20


typedef int Status;
typedef int QElemType;


typedef struct{
QElemtype data[MAXSIZE];
int front;
int rear;
}SqQueue;


Status visit(QElemType c)
{
printf("%d", c);
return OK;
}


Status InitQueue(SqQueue *Q)
{
Q->front = 0;
Q->rear = 0;
return OK;
}//初始化队列


Status ClearQueue(SqQueue *Q)
{
Q->front = Q->rear = 0;
return OK;
}//清空队列


Status QueueEmpty(SqQueue Q)
{
if (Q.front = Q.rear)
return TRUE;
else
return FALSE;
}


int QueueLength(SqQueue Q)
{
return (Q.rear - Q.front + MAXSIZE) % MAXSIZE;
}


Status GetHead(SqQueue Q, QElemType *e)
{
if (Q.rear == Q.front)
return ERROR;
else
*e = Q.data[Q.front];
return OK;
}//用e返回Q的队头元素


Status EnQueue(SqQueue *Q, QElemType e)
{
if ((Q->rear + 1) % MAXSIZE == Q->front)
return ERROR;
Q->data[Q->rear] = e;
Q->rear = (Q->rear + 1) % MAXSIZE;
return OK;
}//插入元素e


Status DeQueue(SqQueue *Q, QElemType *e)
{
if (Q->front == Q->rear)
return ERROR;
*e = Q->data[Q->front];
Q->front = (Q->front + 1) % MAXSIZE;
return OK;
}


Status QueueTraverse(SqQueue Q)
{
int i;
i = Q.front;
while ((i + Q.front) != Q.rear)
{
visit(Q.data[i]);
i = (i + 1) % MAXSIZE;
}
printf("\n");
return OK;
}//输出Q中的所有元素
int main()
{
Status j;
int i = 0, 1;
QElemType d;
SqQueue Q;
InitQueue(&Q);
printf("队列空否(1,是;0,否)",QueueEmpty(Q));
while (i<MAXSIZE - 1)
{
d = i + 100;
if (d = = -1)
break;
i++;
EnQueue(&Q, d);
}
printf("队列长度为:%d\n",QueueLength(Q));
for (l = 1; l <= MAXSIZE; l++)
{
DeQueue(&Q, &d);
printf("要删除的元素是:%d,要插入的元素是:%d", d, l + 1000);
d = l + 1000;
EnQueue(&Q, d);
}
l = QueueLength(Q);
printf("现在队列中的元素为:");
QueueTraverse(Q);
printf("共向队列中插入了 %d个元素",i + MAXSIZE);
if (l - 2>0)
printf("现在由队头删除 %d 个元素",l - 2);
while (QueueLength(Q)>2)
{
DeQueue(&Q, &d);
printf("删除的元素为:%d\n", d);
}
j = GetHead(Q, &d);
if (j)
printf("现在队头元素为:%d\n", d);
ClearQueue(&Q);
printf("清空队列后, 队列空否?%u(1:空 0:否)\n", QueueEmpty(Q));
return 0;
}

我觉得没有错,但是真的有很多错误,大概40多个吧,我反正是没有找出来,基础太差了,╮(╯▽╰)╭,哪位大神看下这智商捉急的代码吧。

转载于:https://my.oschina.net/vold/blog/178667

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NXP(I.MX6uLL) UART串口通信原理————这个未复习

参考&#xff1a;Linux NXP &#xff08;I.MX6uLL&#xff09; UART串口通信原理 作者&#xff1a;一只青木呀 发布时间&#xff1a; 2020-09-20 16:48:33 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/108694634 目录1、UART简介1.1、UART串口通讯…

linux内核pwn,Linux Kernel Pwn 学习笔记 (UAF)

原标题&#xff1a;Linux Kernel Pwn 学习笔记 (UAF)本文为看雪论坛优秀文章看雪论坛作者ID&#xff1a;Vinadiak0x01 背景知识UAF漏洞&#xff1a;UAF 漏洞是当我们 free 掉某个指针变量所指向的堆块的时候&#xff0c;未将该指针变量置0&#xff0c;导致该指针依然指着该堆块…

NXP(I.MX6uLL)DDR3实验——DDR发展历史

目录何为RAM 和ROMSRAM 简介①、地址线②、数据线③、控制线SDRAM 简介①、控制线(时钟、片选)②、A10 地址线③、地址线④、BANK 选择线⑤、BANK 区域⑥、数据线⑦、高低字节选择DDR 简介①、控制线②、地址线③、BANK 选择线④、BANK 区域⑤、数据线⑥、数据选通引脚⑦、数据…

超赞!12套你没见过的社交媒体 社交网站图标

如今&#xff0c;社交网络成为我们信息获取和传播的重要途径&#xff0c;很多网站都有把内容分享到社交媒体的功能。社交媒体图标作为向用户传递信息的重要媒介&#xff0c;不管是在网页还是 Web 应用程序中都非常需要。今天这篇文章和大家分享12套你没见过的社交媒体 & 社…

I2C实验

参考&#xff1a;I2C 总线协议详解 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-09-21 11:41:25 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/108705297 目录I2C 简介I2C 协议I2C协议有关术语1、起始位2、停止位3、数据传输4、应答信号5…

linux安装ffmpeg版本太多,Linux安装FFmpeg的方法

FFmpeg是一款优秀的播放器解码插件&#xff0c;可以跨平台&#xff0c;有不同平台的版本&#xff0c;对于解码&#xff0c;编码和录制以及转换作用的很多的软件都是使用FFmpeg的插件来实现的.FFmpeg&#xff1a;https://www.ffmpeg.org/download.html安装方法&#xff1a;#wget…

官方系统镜像烧写(windows下使用OTG)

目录OTG系统烧写为什么能通过VBS将系统烧写进去呢&#xff1f;OTG系统烧写 选择对应的烧写工具&#xff0c;USB_OTG线连接好&#xff0c;双击即可进行烧写。 注意&#xff1a; 当然也可以烧写到SD卡里面。前面我们烧写裸机代码都是选择从SD卡启动。Mfgtool这个工具先向板子下载…

SQL Server中通用数据库角色权限的处理详解

SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征。理解安全性问题是理解数据库管理系统安全性机制的前提。 最近和同事在做数据库权限清理的事情&#xff0c;主要是删除一些账号&#xff1b;取消一些账号的较大的权限等&#xff0c;例…

linux之xargs命令用途

实现文件删除的方法大致有以下几种&#xff1a;1&#xff0e;rm find /a -type f 2&#xff0e;find /a -type f -exec|-ok rm -rf { } \;3&#xff0e;find /a -type f -exec|-ok rm -rf { } ;本例中xargs将find产生的长串文件列表拆散成多个子串&#xff0c;然后…

什么是U-Boot以及如何下载U-Boot源码

参考&#xff1a;什么是U-Boot以及如何下载U-Boot源码&#xff1f; 作者&#xff1a;一只青木呀 发布时间&#xff1a; 2020-10-20 11:05:59 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/109176510 目录前言系统的启动过程uboot简介uboot源码下载选…

linux系统重装win系统教程,Win10如何重装linux系统 Win10重装linux系统教程

Windows10如何重装linux系统?下面小编就给大家介绍一下Win10重装linux系统教程。1、我们按下wini打开设置 后点击【更新和安全】->【windows更新】;2、我们在左侧点击【针对开发人员】&#xff0c;在右侧点击【发开人员模式】;3、我们按winx键->选择【程序和功能】;4、我…

Uboot初次编译、烧写、启动(启动界面log简析)

目录U-Boot 初次编译U-Boot 烧写与启动上述笔记第三点就是建立shell脚本实现的 第四点就是修改Makefile文件实现的&#xff0c;下面均有实现步骤讲解。 U-Boot 初次编译 先编译体验一下正点原子提供的UBOOT。 首先在Ubuntu 中安装ncurses 库&#xff0c;否则编译会报错&#…

360 linux 扩展文件夹,360签具名工Linux下载0907 官方版

腾牛网提供的这款360签名工具Linux版&#xff0c;共有两个版本&#xff0c;分别是图形界面版和命令行界面版&#xff0c;两种选择为apk签名具有一样的正版效果。相关下载&#xff1a;360加固助手pc端Linux签名工具使用流程(图形界面)使用方法&#xff1a;一、准备工作&#xff…

锁优化

前言 高效并发是从JDK1.5到JDK1.6的一个重要改进&#xff0c;HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术&#xff0c;如适应性自旋、锁消除、锁粗化、轻量级锁和偏向锁等&#xff0c;这些技术都是为了在线程之间高效的共享数据&#xff0c;以及解…

WPF--ComboBox数据绑定

0-在ComboBox中显示图片&#xff1a; <ComboBox Height"33" HorizontalAlignment"Right" Margin"0,94,31,0" x:Name"comboBox1" VerticalAlignment"Top" Width"142" SelectedIndex"0"> <Co…

U-Boot源码目录分析(VScode工程创建及文件夹过滤)

参考&#xff1a;U-Boot工程目录介绍 作者&#xff1a;一只青木呀 发布时间&#xff1a; 2020-10-21 14:47:30 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/109199081 目录0、Uboot下载编译VScode工程创建及文件夹过滤2、重要文件2.1、arch文件夹&…

Spring Security 案例实现和执行流程剖析

在线演示 演示地址&#xff1a;http://139.196.87.48:9002/kitty 用户名&#xff1a;admin 密码&#xff1a;admin Spring Security Spring Security 是 Spring 社区的一个顶级项目&#xff0c;也是 Spring Boot 官方推荐使用的安全框架。除了常规的认证&#xff08;Authentica…

Ubuntu用户与用户组

目录Ubuntu用户与用户组创建用户和用户组Ubuntu用户与用户组 创建用户和用户组

linux执行windows创建的脚本,如何在Windows 10上创建和运行Bash Shell脚本 | MOS86

随着Windows 10的到来您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中。如果你知道你是什么Windows和UNIX使用不同的行尾字符&#xff0c;Windows文件系统可以在Bash环境的不同位置访问。如何在Windows上编写一个Bash脚本10当在Windows上编写shell脚本时&#xf…

31 锁,信号量,事件,队列

1.同步锁&#xff08;互斥锁&#xff09; from mutilprocessing import Lock 方式一&#xff1a; lockLock() lock.acquire() 数据操作的代码 lock.release() 方式二&#xff1a; with lock: 数据操作代码2.信号量 from mutilprocessing import …