【发布时间】:2021-04-23 10:07:21
【问题描述】:
我尝试将元素添加到队列中,但显示元素功能不起作用。此外,当我单击删除而不插入任何元素时,它不会执行我为空队列所做的 if 语句。 我不知道问题出在哪里,但请帮我解决这个问题。
这是插入队列元素的函数:-
int num;
if(rear==MAXSIZE-1)
{
printf("\nQueue is full (Queue overflow)");
return;
} else {
if(front==-1)
front=0;
printf("\nEnter the element to be inserted : ");
scanf(" %d", &num);
rear++;
queue[rear] = num;
}
这是删除队列元素的函数:-
if(front==-1 && front > rear)
{
printf("\nQueue is empty (Queue underflow)");
return;
} else {
int num;
num=queue[front];
printf("\nDeleted element is : %d",num);
front++;
}
这是显示队列元素的函数:-
if(front==-1)
{
printf("\nQueue is empty (Queue underflow)");
} else {
printf("\nQueue elements are : \n");
for(int i=front; i<=rear; i++)
printf("%d\t",queue[i]);
}
【问题讨论】:
-
您的代码不完整。您不显示“函数”,而只显示可能是函数体的代码 sn-ps。我们不知道数据类型、您如何调用函数以及您使用什么数据。请edit您的问题并创建一个minimal reproducible example,即我们可以编译和运行的程序与示例输入、您获得的实际输出和预期输出一起。
-
if(front==-1 && front > rear) -
if(front==-1 && front > rear)在逻辑上不正确。至少,&&应该是||。