今天,用陣列來模擬環形佇列(將資料取出佇列之後能立馬新增資料)。
思路:首先,佇列與陣列一樣,從0開始數
定義乙個整型front變數:指向佇列的第乙個元素,即arr[front]就是佇列的第乙個元素,front的初始值為0
定義乙個整型rear變數:指向佇列的最後乙個元素的後乙個位置(例如:定義佇列的最大容量maxsize為4,但是只能儲存3個有效資料,還有乙個位置留給rear來做一些約定),rear的初始值為0
佇列滿時的條件為:(rear+1)%maxsizefront 佇列空時的條件為:rearfront
佇列中的有效資料:(rear+maxsize-front)%maxsize
**如下:
class circlearray
// 判斷佇列是否滿
public boolean isfull()
// 判斷佇列是否為空
public boolean isempty()
// 新增資料到佇列
public void addqueue(int n)
//直接將資料加入
arr[rear] = n;
//將 rear 後移, 這裡必須考慮取模
rear = (rear + 1) % maxsize;
}// 獲取佇列的資料, 出佇列
public int getqueue()
// 這裡需要分析出 front是指向佇列的第乙個元素
// 1. 先把 front 對應的值保留到乙個臨時變數
// 2. 將 front 後移, 考慮取模
// 3. 將臨時儲存的變數返回
int value = arr[front];
front = (front + 1) % maxsize;
return value;
}// 顯示佇列的所有資料
public void showqueue()
// 思路:從front開始遍歷,遍歷多少個元素
for (int i = front; i < front + size() ; i++)
}// 求出當前佇列有效資料的個數
public int size()
// 顯示佇列的頭資料, 注意不是取出資料
public int headqueue()
return arr[front];
}
第二天學習資料結構
include include include 完成一部分,只有初始化和輸出,其餘明天繼續 typedef struct list sqlist 動態鍊錶的生成 用單迴圈鍊錶 void initlist sqlist list 初始化鍊錶 void showlist sqlist list void...
資料結構第二天
學習資料結構第二天,有點學習心得,所以記錄一下。目前才接觸線性結構的順序表和單鏈表的 說說它們的異同吧。毫無疑問,順序表和單鏈表的共同點就是線性,即元素呈線性排列,單一前繼和單一後繼。並且表示形式都使用打頭的元素位址,有點順藤摸瓜的感覺。不同點就是順序表的物理結構也是順序的,實際上就是位址 而已,好...
結構光學習第二天
系統環境 window10 vs2015 第一 安裝pointgrey 的 sdk 從官網上找到對應的型號,對應系統的 sdk 雙擊直接按裝就可以 安裝顯示成功安裝 通過pointgrey flycap2 測試裝置是否正常 官方帶的這個軟體真是奇葩 雙擊直接崩潰,無語 那也得測啊,只能通過寫程式,掉...