先入先出程序怎么写

时间:2025-01-22 17:23:48 游戏攻略

先入先出(FIFO)程序可以用多种编程语言实现。以下是几种不同语言的示例:

Java 示例

```java

import java.util.LinkedList;

public class FIFO {

public static void main(String[] args) {

LinkedList queue = new LinkedList<>();

queue.add(8);

queue.add(9);

queue.add(10);

int outNumber = 12; // 模拟出库

for (int i = 0; i < queue.size(); i++) {

int number = queue.get(i);

int resetNumber = number - outNumber;

System.out.println("循环次数: " + (i + 1));

if (resetNumber < 0) { // 库存数量不充足

outNumber -= number;

System.out.println(0);

} else {

System.out.println("剩余数量: " + (number - outNumber));

break;

}

}

}

}

```

C 语言示例

```c

include

include

define MAX_SIZE 10

typedef struct {

int data[MAX_SIZE];

int front, rear;

} Queue;

void enqueue(Queue *q, int data) {

if (isFull(q)) {

printf("队列已满,无法入队。\n");

return;

}

q->rear = (q->rear + 1) % MAX_SIZE;

q->data[q->rear] = data;

}

void dequeue(Queue *q, int *data) {

if (isEmpty(q)) {

printf("队列为空,无法出队。\n");

return;

}

*data = q->data[q->front];

q->front = (q->front + 1) % MAX_SIZE;

}

int isFull(Queue *q) {

return (q->rear + 1) % MAX_SIZE == q->front;

}

int isEmpty(Queue *q) {

return q->front == q->rear;

}

int main() {

Queue q;

int data, choice;

init(&q);

while (1) {

printf("1. 入队\n2. 出队\n3. 退出\n选择操作: ");

scanf("%d", &choice);

switch (choice) {

case 1:

printf("请输入要入队的数据: ");

scanf("%d", &data);

enqueue(&q, data);

break;

case 2:

dequeue(&q, &data);

printf("出队数据: %d\n", data);

break;

case 3:

return 0;

default:

printf("无效选择,请重新选择。\n");

}

}

}

```

C++ 示例(使用 `std::queue`)

```cpp

include

include

int main() {

std::queue q;

q.push(8);

q.push(9);

q.push(10);

int outNumber = 12; // 模拟出库

while (!q.empty()) {

int number = q.front();

q.pop();

int resetNumber = number - outNumber;

std::cout << "循环次数: " << (q.size() + 1) << std::endl;

if (resetNumber < 0) { // 库存数量不充足

outNumber -= number;

std::cout << "0" << std::endl;

} else {

std::cout << "剩余数量: " << (number - outNumber) << std::endl;

break;

}

}

return 0;

}

```

物料管理程序示例