迴圈佇列一種實現

2021-08-08 15:33:44 字數 919 閱讀 1532

queue實現方式有兩種:陣列和鍊錶,本文屬於陣列實現,為了防止佇列出現「明明還有儲存空間,但是卻提示佇列已滿」的情況,故使用迴圈佇列

#include #include #define max_size 5

typedef struct qnode squeue,*squeueptr;

void init_squeue(squeueptr *sq)

}int ensqueue(squeueptr sq, char e)

if(sq->front == (sq->rear + 1)%max_size)

sq->data[sq->rear] = e;

sq->rear++;

if(sq->rear == max_size)

sq->rear = 0;

sq->data[sq->rear] = '\0';

return 0;

}int desqueue(squeueptr sq, char *e)

if(sq->front == sq->rear)

*e = sq->data[sq->front];

sq->data[sq->front] = '\0';

sq->front++;

if(sq->front == max_size)

sq->front = 0;

return 0;

}void print_squeue(squeueptr sq)

for(i=0;idata[i]);

printf("yxw test0911: front = %d\n",sq->front);

printf("yxw test0911: rear = %d\n",sq->rear);

}int main(void)

}}

佇列的一種實現 迴圈佇列

佇列的一種實現,迴圈佇列,通過使用固定長度陣列及首尾指標實現佇列的入隊 出隊等 class circularqueue 元素入隊,成功則返回true,否則false param value return public boolean put t value if isempty true tail ...

一種ViewPager無限迴圈的實現

原理就是當總個數大於1時,getcount返回乙個最大值integer.max value,然後迴圈展示對應的 基於viewpager原理,快取3個檢視用於展示 並設定起始的位置。public static class looppageradapter extends pageradapter co...

一種可併發讀寫的佇列實現

寫演算法時頭腦要清晰,在頭腦中高速抽象分析,一般都會用迴圈或遞迴思想來完成。1 定義規則 2 確定邊界條件 3 每一步的具體操作和細節注意 例如 c實現迴圈佇列 分析如下 肯定有迴圈操作,要考慮佇列空或者滿,還有越邊界等情況,要迅速準確完成程式必須定義規則,無規矩無以成方圓。1 head和tail兩...