鍊錶的增刪改查實現(遞迴與非遞迴實現)

2021-10-01 15:23:11 字數 1914 閱讀 5042

1、鍊錶的概念:鍊錶是一種物理儲存單元上非連續、非順序的儲存結構。

2、原理圖:

3、增刪改查操作實現(遞迴):

(1)、首先建立乙個node類:

public

class

node

(2)、增刪改查(遞迴實現):

增加: (本例介紹在尾部插入)在增加的過程中,先找到最後乙個結點(next==null , 遞迴尋找),每增加乙個元素,都會新建乙個新的結點,由最後乙個結點的next指向。

刪除:首先引進要刪除的值,根據值進行刪除(當然也可以根據索引進行除),根據遞迴操作尋找與形參值相同的結點的data值,然後進行next指向此節點的下一結點。

修改、查詢:此操作比較簡單,根據遞迴查詢,修改data值即可。

public

class

node

else

}//刪除操作

public

boolean

del(

int n)

else

}return

false;}

//改操作

public

boolean

change

(int n ,

int m)

else

}return

false;}

//查詢

public

boolean

find

(int n)

else

}return

false;}

@override

public string tostring()

}

3、增刪改查操作實現(非遞迴):

利用while迴圈實現(基礎原理同上)

public

class

linklist

t.next =

newnode()

; t.next.data = n;

}//刪除

public

void

del(

int n)}}

//修改

public

void

change

(int n,

int m)

t = t.next;

//此操作為必須操作,如果沒有指向下乙個結點,會出現死迴圈}}

//查詢

public

boolean

find

(int n)

t = t.next;

//此操作為必須操作,如果沒有指向下乙個結點,會出現死迴圈

}return

false

;//如果沒有要尋找的值則返回false

}@override

public string tostring()

反轉鍊錶 遞迴與非遞迴實現

一 迭代實現 思路 通過每次遍歷,修改當前結點與上一結點指向,遍歷到最後乙個結點,鍊錶也就實現了反轉 首先我們定義三個指標,分別指向當前節點cur 前一結點pre 下一節點next,並且pre和next為null 起始狀態為 第一次 執行 next cur next cur next pre pre...

反轉鍊錶 遞迴和非遞迴實現

include stdafx.h include include struct node void createlink node head,int data void printlink node head void reverselink node head node reverselink n...

C 實現鍊錶遞迴和非遞迴合併

1.使用遞迴和非遞迴實現鍊錶的合併 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,要求合成後的鍊錶滿足單調不減規則。2.實現 struct listnode 遞迴實現合併兩個排序鍊錶 listnode merge listnode phead1,listnode phead2 else 非遞迴實...