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兩...