例項講解 單向鍊錶(2)

2021-09-08 18:20:55 字數 1391 閱讀 9772

將使用內部類,完成鍊錶的操作!

之前已經實現了簡單的單向鍊錶,但是因為要用手工去處理各個節點的關係,這樣肯定不行。

所以此處最好將節點的操作進行封裝。這樣使用者操作就很方便了。

假設現在的節點操作有以下幾種:增加資料,查詢資料,刪除資料。

特別強調的是,如果要刪除節點的話,直接修改上乙個節點就可以。

增加節點:就是在節點最後進行增加。

查詢節點:就是依次遞迴的方式查詢。

在程式開發中,必須考慮兩種情況:

1)第一次執行的時候,第一次執行的時候,其根節點不存在,則需要將第乙個資料設定成為根節點。

class link

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

};

2)為了檢視全部鍊錶,這裡定義了乙個列印鍊錶的方法。

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...