佇列的重新認識

2021-09-01 19:29:16 字數 1229 閱讀 4603

今天又回顧了原來佇列那節,自己重新把**敲了一遍,但是還是犯了一些小小的錯誤,但是還是收穫了,對佇列有了近一步的認識。在此幾下僅僅為了更好的理解。

錯誤分析:

這個錯誤真的是犯得太幼稚了,而且還犯了兩次。在需要用到迴圈語句的地方,我這樣用:

然後我列印了輸出佇列的長度:

結果是:

後來自己就把**重新檢驗了一遍發現也沒有什麼問題,突然才想到原來if語句只是七判斷的作用,但這裡的真正的用意在於迴圈下去直到找到最後乙個為空的為止。如果用if語句,這塊**只能執行一次,count只能加一次,所以長度為1。而我們常用的迴圈語句主要有三類:while語句,do-while語句和for語句。這裡就不再詳細介紹了,因為用法很簡單。所以把**中的if改為while時,輸出結果為:

這樣問題就解決了!!!

在佇列這一塊中,主要的是抓住佇列的特點。佇列是通過前後連線的關係來解決新增、刪除、插入資料等的方法。但是再這個過程中,有涉及到需要在佇列中找到相對應的下標,這個的方法是這樣的:比如說在插入資料的方法中:

//插入元素

public void insert(int index,object obj)

node node = new node();

node.setdata(obj);

if(root == null)else

//找到對應的index下標

int count =0;

node indexnode = root;

node prevnode = root;

while(index != count)

node.setnext(indexnode);

prevnode.setnext(node);

} }

所以解決這個問題的話,佇列的實現就像用陣列去實現是一樣的簡單。雖然寫的有點簡單,有點幼稚,算是對這裡的深入理解吧。

重新認識container

我還清楚的記得,第一次從 那兒聽說container這個詞 結果他給我解釋了半天還是似懂非懂的。今天,偷閒翻了下posa4,發現裡面對container的解釋特別清楚。粗略的理解下來是,為了分離關注點,而實現的對系統資源的封裝。豁然開朗的發現,os就是應用程式的container。突發奇想的,開發乙...

重新認識測試

以前總覺得測試是軟體開發的邊緣職位,開發人員才是軟體生命週期的核心人員。隨著對網際網路公司的了解,逐步了解到測試的重要性。以bat為例,三家公司均設定了測試開發工程師崗位,該崗位的主要職責就是編寫自動化測試案例,通過對 的邏輯進行分析,設計出能夠覆蓋大部分 的測試用例。如阿里的測試開發工程師的崗位描...

重新認識ARC

雖然用了很久的arc,感受了 簡潔。但是對arc底層實現並不了解。今天抽空研究了下,做些簡單地總結。一 strong 1.區域性變數 對於區域性變數來說,在超出作用域的地方由編譯器自動插入release。大概轉化為 在非arc返回的autorelease型別的方法 在blog手碼大概 如有錯誤還望指...