學習資料結構的第二天 用陣列來模擬環形佇列

2021-10-07 03:47:34 字數 1215 閱讀 6914

今天,用陣列來模擬環形佇列(將資料取出佇列之後能立馬新增資料)。

思路:首先,佇列與陣列一樣,從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 測試裝置是否正常 官方帶的這個軟體真是奇葩 雙擊直接崩潰,無語 那也得測啊,只能通過寫程式,掉...