之前一直沒怎麼在意C++中的連結清單,但是突然一下子讓自己寫,就老是出錯。沒辦法,決定好好惡補一下該方面的知識,也為今後的資料結構打下個良好的基礎,于是我總結出以下幾點,有些地方可能不正确,還望大家不吝賜教,旨在共同進步。
1、連結清單List的基本單元是節點Node,是以想要操作友善,就必須為每一步打好基礎,Node的基本結構如下:
我們可以看出,Node的成員變量一共有兩個,都是public,因為我們要對這兩個變量進行操作,是以不能是private類型的。然後是一個構造函數,第二個參數預設值為NULL,也就是說如果我們建立新節點時隻指定第一個參數,而不寫第二個參數,那麼它預設的就是NULL,以這種方式可以更靈活的使用Node,個人建議這麼使用哦。
2、第二步就是建立我們的連結清單了,同樣我們這裡先給對外連結表的代碼,再進行一一的解釋。
我們這裡面有兩個資料類型,一個是Node。另一個是指代節點位置的成員變量(起不到什麼作用,且不去管它吧)。使用head和tail來命名便是為了見名知意,使操作更加準确。然後是重要的六個函數,各自的功能不言而喻咯,其實最重要的是在每一個函數中我們都預設能操作head和tail兩個成員變量,這樣能簡化我們的參數清單,使得函數更加優雅。
下面是我的一個單連結清單的實作,包含建立連結清單,插入值,删除特定的值,查找特定值得在連結清單中的位置。
運作結果:
