1. 程式人生 > 實用技巧 >PHP多程序爬蟲

PHP多程序爬蟲

順序迴圈佇列

  • 在判斷隊空和隊滿時有3種方法,看教材
  • 這裡列舉其中一種
#pragma once

#include <stdio.h>

#define maxSize 100

typedef int ElemType;
typedef struct {
    int rear, front; //front指向隊頭第一個,rear指向隊尾的下一個
    ElemType data[maxSize];
} SeqQueue;

//初始化
void initQueue(SeqQueue &q) {
    q.front = q.rear = 0;
}

//判斷空
bool isEmpty(SeqQueue q) {
    return q.rear == q.front;
}

//入隊
bool enQueue(SeqQueue &q, ElemType x) {
    if ((q.rear + 1) % maxSize == q.front) return false; //已滿的情況
    q.data[q.rear] = x;
    q.rear %= maxSize;
    return true;
}

//出隊
bool deQueue(SeqQueue &q, ElemType &x) {
    if (q.rear == q.front) return false;
    x = q.data[q.front];
    q.front = (q.front + 1) % maxSize;
    return true;
}

//獲取隊頭元素
ElemType getTop(SeqQueue q) {
    if (q.rear == q.front) return false;
    return q.data[q.front];
}

//計算對內元素的個數
int getNum(SeqQueue q){
    return (q.rear + maxSize -q.front) % maxSize;
}

鏈式佇列