用c++写出FIFO算法
时间: 2024-05-26 22:10:31 浏览: 7
当在多个任务同时读写同一资源的时候,就需要使用多线程管理。而其中的FIFO算法就是一种先进先出的调度算法。
在C语言中,实现FIFO算法的核心是一个队列结构。队列结构是一种线性结构,遵循先进先出的原则。在FIFO算法中,我们将需要执行的任务依次加入到队列中,然后按照队列中的顺序依次进行调度。当一个任务完成后,它将被从队列中移除,下一个任务将被执行。
以下是一个简单的用C语言实现FIFO算法的代码示例:
#include<stdio.h>
#define MAX 5
int queue[MAX];
int front=-1,rear=-1;
void insert(int);
int delete();
void display();
void main()
{
int choice, num;
clrscr();
do
{
printf("\n MENU");
printf("\n 1. INSERT");
printf("\n 2. DELETE");
printf("\n 3. DISPLAY");
printf("\n 4. EXIT");
printf("\n Enter your choice: ");
scanf("%d", &choice);
switch(choice)
{
case 1:
printf("\n Enter the element to be inserted: ");
scanf("%d", &num);
insert(num);
break;
case 2:
num = delete();
if(num!=-1)
printf("\n The deleted element is: %d", num);
break;
case 3:
display();
break;
case 4:
exit(0);
break;
default:
printf("\nInvalid Choice");
break;
}
}while(choice!=4);
}
void insert(int element)
{
if(rear==MAX-1)
printf("\n Queue is full");
else
{
if(front==-1)
front=0;
rear++;
queue[rear]=element;
printf("\n Element inserted successfully");
}
}
int delete()
{
int value;
if(front==-1 || front>rear)
{
printf("\n Queue is empty");
return -1;
}
else
{
value=queue[front];
front++;
if(front>rear)
front=rear=-1;
printf("\n Deletion operation successful");
return (value);
}
}
void display()
{
int i;
if(rear==-1)
printf("\n Queue is empty");
else
{
printf("\n Queue elements are: ");
for(i=front;i<=rear;i++)
printf("%d \n", queue[i]);
}
}
希望这段代码能够帮助你理解FIFO算法的实现。