刪除單鏈表中的重複節點

2021-10-07 09:36:25 字數 1074 閱讀 3084

2.1 知識點分析

鍊錶是線性結構的一種物理實現,除此之外,線性結構還可以使用順序儲存結構來實現。順序儲存是使用記憶體中的一塊位址連續空間順序存放線性表中的每乙個元素,每個元素在物理上相鄰,而鏈式儲存結構則不會要求物理上的元素相鄰,它通過節點的指標域指向下乙個元素。

線性結構是資料結構的幾種常見邏輯結構之一,在資料結構中,常見的邏輯結構有:集合結構、線性結構、樹結構、圖結構。這幾種邏輯結構,如果要在計算機上實現出來,可以採用順序儲存結構、鏈式儲存結構、索引結構、雜湊結構四種。從理論上講,任何一種邏輯結構都可以採用任何一種物理結構來實現。

在單鏈表的建立過程中,根據新元素插入位置的不同,可以有頭插法和尾插法兩種。這兩種建立方式建立出來的單鏈表在性質上沒有什麼不同。

為了方便單鏈表元素的統一操作,也可以在單鏈表的頭部附加乙個結點,我們稱之為 頭結點。頭結點中的資料域可以存放和鍊錶有關的資訊,例如節點的個數。要注意頭結點和頭指標在邏輯上的區別,鍊錶中第乙個正式資料元素的節點叫做首元結點,在此節點之前附加的乙個節點叫做頭結點,頭結點中資料域儲存的資訊在性質上和鍊錶中資料元素節點中資料域儲存的內容不同,頭指標是指向整個鍊錶中的第乙個節點的位址,可能是頭結點的位址,也可能會是首元結點的位址。

2.2 **分析

#include#includetypedef struct nodenode,*pnode;

//頭插法建立帶有頭結點的單鏈表

pnode creat_list()

return head;

}//刪除重複節點

void del_repeated_node(pnode head)else

}k = pre_p = k->next;

p = pre_p->next; }}

void print_list(pnode head)

printf("\n");

} int main()

2.3 結果截圖

單鏈表刪除重複節點

學後一年重看資料結構,確實難啊,搞了半天才搞明白這個小問題。include include include typedef char elemtype typedef struct node 結點型別定義 node,linklist linklist為結構指標型別 void createfromta...

單鏈表刪除節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。思路 刪除某個結點需要找到該結點的前乙個結點,由於單向鍊錶沒有指向前乙個結點的指標,所以不得不從頭指標開始遍歷鍊錶。顯然時間複雜度為o n 1 待刪除的節點不是尾節點的情況 首先把待刪除的節點的前乙個節點的...

刪除單鏈表中的重複結點

方法一 遞迴 link delsame link head 沒有重複的元素,加入list後,為了保持不變式 要從list兩兩比較,如果有相同元素必定在開頭兩個 link pointer,temp head if head next null return head head next delsame...