今天又回顧了原來佇列那節,自己重新把**敲了一遍,但是還是犯了一些小小的錯誤,但是還是收穫了,對佇列有了近一步的認識。在此幾下僅僅為了更好的理解。
錯誤分析:
這個錯誤真的是犯得太幼稚了,而且還犯了兩次。在需要用到迴圈語句的地方,我這樣用:
然後我列印了輸出佇列的長度:
結果是:
後來自己就把**重新檢驗了一遍發現也沒有什麼問題,突然才想到原來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手碼大概 如有錯誤還望指...