使用C语言解释队列中元素的删除


数据结构是以结构化的方式组织数据的集合。它分为以下两种类型:

  • 线性数据结构 − 数据以线性方式组织。例如,数组、结构体、栈、队列、链表。

  • 非线性数据结构 − 数据以层次化的方式组织。例如,树、图、集合、表。

另请阅读: 数据结构和类型

队列

队列是一种线性数据结构,其中元素的插入在队尾进行,删除在队头进行。

队列的顺序是 FIFO – 先进先出

操作

  • 插入 – 将元素插入队列。
  • 删除 – 从队列中删除元素。

条件

  • 队列溢出 − 尝试将元素插入到已满的队列中。

  • 队列下溢 − 尝试从空的队列中删除元素。

算法

以下是插入 ( ) 的算法:

  • 检查队列是否溢出。
if (r==n)
printf ("Queue overflow")
  • 否则,将元素插入队列。
q[r] = item
r++

以下是删除 ( ) 的算法:

  • 检查队列是否下溢。
if (f==r)
printf ("Queue under flow")
  • 否则,从队列中删除元素。
item = q[f]
f++

以下是显示 ( ) 的算法:

  • 检查队列是否为空。
if (f==r)
printf("Queue is empty")
  • 否则,打印从 ‘f’ 到 ‘r’ 的所有元素。
for(i=f; i<r; i++)
printf ("%d", q[i]);

C语言删除队列元素的程序

以下是C语言删除队列元素的程序:

#include <stdio.h>
#define MAX 50
void insert();
int array[MAX];
int rear = - 1;
int front = - 1;
main(){
   int add_item;
   int choice;
   while (1){
      printf("1.Insert element to queue 
");       printf("2.Delete an element from queue
");       printf("3.Display elements of queue
");       printf("4.Quit
");       printf("Enter your choice : ");       scanf("%d", &choice);       switch (choice){          case 1:             insert();          break;          case 2:             delete();          case 3:             display();          break;          case 4:             exit(1);          default:          printf("Wrong choice
");       }    } } void insert(){    int add_item;    if (rear == MAX - 1)       printf("Queue Overflow
");    else{       if (front == - 1)       /*If queue is initially empty */       front = 0;       printf("Inset the element in queue : ");       scanf("%d", &add_item);       rear = rear + 1;       array[rear] = add_item;    } } void display(){    int i;    if (front == - 1)       printf("Queue is empty
");    else{       printf("Queue is :
");       for (i = front; i <= rear; i++)          printf("%d ", array[i]);          printf("
");    } } void delete(){    if (front == - 1 || front > rear){       printf("Queue Underflow
");       return ;    }    else{       printf("Element deleted from queue is : %d
",array[front]);       front = front + 1;    } }

输出

执行上述程序后,将产生以下结果:

1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 1
Inset the element in queue: 12
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 1
Inset the element in queue: 23
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 1
Inset the element in queue: 34
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 2
Element deleted from queue is: 12
Queue is:
23 34
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 2
Element deleted from queue is: 23
Queue is:
34
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 4

更新于:2024年6月20日

6K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告