热门问题
时间线
聊天
视角
先進先出演算法
来自维基百科,自由的百科全书
Remove ads
先進先出算法(英語:first in, first out,簡稱 FIFO)是一種計算機科學的排程演算法。它描述了一個佇列所使用的先到先得服務方式:先進入佇列的工作將先被完成,之後進來的則必須稍候。

範例
一個C++語言的範例
#include <iostream>
#include <stdexcept>
 
template <typename T>
class FIFO
{
private:
    struct Node {
        T     value;
        Node *next;
        Node(T _value) : value(_value), next(NULL) {}
    };
    Node *front;
    Node *back;
public:
    FIFO() : front(NULL), back(NULL) {}
    ~FIFO() {
        while (front != NULL)
            dequeue();
    }
    void enqueue(T _value) {
        Node *newNode = new Node(_value);
        if (front == NULL)
            front = newNode;
        else
            back->next = newNode;
        back = newNode;
    }
    T dequeue() {
        if (front == NULL)
           throw std::underflow_error("Nothing to dequeue");
        Node *temp   = front;        
        T     result = front->value;
        front = front->next;
        delete temp;
        return result;
    }
};
Remove ads
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
