將使用內部類,完成鍊錶的操作!
之前已經實現了簡單的單向鍊錶,但是因為要用手工去處理各個節點的關係,這樣肯定不行。
所以此處最好將節點的操作進行封裝。這樣使用者操作就很方便了。
假設現在的節點操作有以下幾種:增加資料,查詢資料,刪除資料。
特別強調的是,如果要刪除節點的話,直接修改上乙個節點就可以。
增加節點:就是在節點最後進行增加。
查詢節點:就是依次遞迴的方式查詢。
在程式開發中,必須考慮兩種情況:
1)第一次執行的時候,第一次執行的時候,其根節點不存在,則需要將第乙個資料設定成為根節點。
class link2)為了檢視全部鍊錶,這裡定義了乙個列印鍊錶的方法。public
void add(node newnode)
else
}public
void
print()
}public
boolean search(string data)
elseelse}}
public
void
delete(node previous,string data)else}}
};private node root ; //
鍊錶中必然存在乙個根節點
public
void addnode(string data)else
}public
void printnode()
}public
boolean contains(string name)
public
void deletenode(string data)else}}
};public
class
linkdemo02
};
3)查詢節點,肯定是繼續使用遞迴的操作進行查詢操作的。
4)完成刪除功能,如果要想刪除節點,肯定就是改變節點的引用物件的內容。但是在刪除前要確保此節點存在。否則無法刪除。
5)刪除節點要判斷是不是根節點,要是根節點的話,需要修改他的下乙個為根節點。
6)做刪除操作,需要把刪除的節點和他前面的節點一起傳入刪除方法,因為要修改引用物件,必須要前乙個節點的存在。
1,這個題把鍊錶本身作為乙個外部類。而節點作為內部類。
2,這裡用到的知識點包括遞迴,this的當前物件功能。
3,由於增加節點不知道首節點的位置,所以需要從根節點開始查詢,所以用了根節點呼叫新增方法,然後根據判斷下乙個節點來視情況新增。
4,本程式實際上就是針對引用的擴充套件應用。而且在本程式中只是實現了最簡單的單向鍊錶功能。
資料結構 單向鍊錶例項
題目 出自 c 程式設計基礎 建立乙個結點包括職工的編號 年齡和性別的單向鍊錶,分別定義函式完成以下功能 1 遍歷該鍊錶輸出全部職工資訊 2 分別統計出男女性職工的人數 3 在鍊錶尾部插入新職工結點 4 刪除指定編號的職工結點 5 刪除年齡在60歲以上的男性職工或55歲以上的女性職工結點,並儲存在另...
線性表 線性表 抽象鍊錶類 單向鍊錶講解
線性表兩種分類 順序表,鍊錶 線性表 記錄 資料元素 資料項 順序表 只有唯一乙個節點只存在乙個後繼,不存在前驅,只有唯一乙個節點存在前驅,不存在後繼,中間所有的節點都存在位移的前驅和後繼 順序表的優點 可以隨機訪問,方便訪問,儲存密度大,空間利用率高 順序表缺點 難以實現插入資料的操作,而且空間一...
鍊錶 反轉單向鍊錶
思路 從第二個元素開始。1 刪除當前元素。2 把當前元素放到頭結點位置。其中需要宣告3個變數 headnode 頭結點 prenode 前乙個結點 currentnode 當前結點 具體步驟如圖所示 實現 反轉單鏈表方法實現類 created by liujinjin on 17 1 19.publ...