1. 程式人生 > 實用技巧 >GIT常見命令(二)

GIT常見命令(二)

一端插入一端刪除的線性表,FIFO。

迴圈佇列:

為保證佇列不出現偽溢位,一般將其構造為迴圈佇列。

為方便判斷佇列是否已滿,將佇列滿定義為還剩一個數組空間。

佇列滿的條件:(rear+1)%QueueSize == front (rear隊尾, front隊頭)

佇列長度計算公式:(rear-front+QueueSize) % QueueSize

指標後移:(front+1)%MAXSIZE。同時也實現了迴圈!

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#define MAXSIZE 1000
#pragma
warning (disable:4996) typedef int QElemType; typedef struct { QElemType data[MAXSIZE]; int front; int rear; }SqQueue; bool initQueue(SqQueue* Q) { Q->front = Q->rear = 0; return 1; } bool insertElem(SqQueue* Q, QElemType e) { if ((Q->rear + 1) % MAXSIZE == Q->front) {
return 0; } Q->data[Q->rear] = e; Q->rear = (Q->rear + 1) % MAXSIZE;//迴圈佇列裡的指標後移! return 1; } bool deleteData(SqQueue* Q, QElemType* e) { if (Q->front == Q->rear) { return 0; } *e = Q->data[Q->front]; Q->front = (Q->front + 1) % MAXSIZE;
return 1; }

鏈式佇列:
操作比較簡單,同單鏈表。