12 9 1鍊錶資料增加

2021-10-03 23:42:27 字數 1434 閱讀 8403

鍊錶在進行定義時使用了泛型技術,這樣就可以保證每個鍊錶所儲存的相同型別的資料,這樣既可以避免classcastexception安全隱患,又可以保證在進行物件比較時的資料型別統一。

鍊錶是多個節點的集合,所以在鍊錶類中為了可以方便的進行所有節點的操作,則需要進行根節點(第乙個儲存的節點)的儲存,每一次增加的新節點都要依照順序儲存在最後乙個節點後進行儲存。

1、【ilink】在ilink介面中定義資料增加的方法

* 向鍊錶中進行資料的儲存,每個鍊錶所儲存的資料型別相同,不允許儲存null資料

* @param e 要儲存的資料

*/public void add(e e);

}

2、【link.node】每當進行鍊錶資料增加時都需要建立新的node類物件,並且需要依據引用關係儲存node類物件,此操作可以交由node類完成,所以在node類中追加節點儲存方法。

/**

* 儲存新建立的 節點,儲存的依據是判斷當前節點的next屬性是否為空

* @param newnode 要儲存的新節點

*/public void addnode(nodenewnode) else }}

3、【link】鍊錶實現子類定中定義根節點物件

private noderoot;  //儲存根節點資訊
4、【link】在子類中覆寫ilink介面中定義的add()方法。

@override

public void add(e e)

//資料本身不具有節點先後的關聯特性,要想實現關聯處理就必須將資料報裝在node類中

nodenewnode=new node(e); //建立乙個新的節點

if(this.root==null) else

}

在link子類中主要功能是將要儲存在鍊錶中的資料報裝在node類物件中,這樣就可以利用node類中所提供的next屬性來定義不同node類物件間的先後關係。在鍊錶實現中最為重要的就是根節點的儲存,即通過根節點可以實現所有後續節點的處理,本程式將第乙個儲存的節點作為根節點。

5、【測試類】在主類中進行鍊錶資料的儲存

public class linkdome277  

}

在客戶端使用時可以利用子類物件的向上轉型為ilink父類介面物件例項化,這樣就可以直接呼叫add()方法進行鍊錶資料儲存,由於鍊錶了實現了所有節點的建立與引用處理,所以客戶端不必關心node類的操作。

鍊錶 建立刪除增加遍歷

linked list 建立鍊錶 include include include struct listnode void createlisthead listnode head,int n p next null 遍歷整個表 void printflist listnode head 刪除整個表...

鍊錶節點的增加和刪除

struct listnode 增加節點 第乙個引數是乙個指向指標的指標。當我們往乙個空煉表中插入乙個節點時,新插入的節點 就是鍊錶的頭指標。由於此時會改動頭指標,因此必須把phead引數設為指向指標的指標 void addtotail listnode phead,int value else v...

鍊錶的建立以及鍊錶節點的增加和刪除

單鏈表的建立過程有以下幾步 1 定義鍊錶的資料結構 2 建立乙個空表 3 利用malloc 函式向系統申請分配乙個節點 4 將新節點的指標成員賦值為空。若是空表,將新節點連線到表頭 若是非空表,將新節點接到表尾 5 判斷一下是否有後續節點要接入鍊錶,若有轉到3 否則結束 單鏈表的輸出過程有以下幾步 ...