手工實現LinkedList

2021-09-09 07:07:28 字數 1086 閱讀 9875

參照其底層**,按照自己的理解實現了linkedlist的一些基本功能。

如果對c和c++指標了解一下,理解起來非常快。

package cn.liu.mylinkedlist;

//結點

public class node

//構造器,來傳資料

public node(object element)

}

package cn.liu.mylinkedlist;

/** * 自定義乙個鍊錶

* @author dick

* */

public class mylinkedlist

else

size++;

} //add函式,在指定位置插入乙個結點

//先通過index找到位置,再插入

public void add(e obj,int index)

else //其他結點

size--; }

//判斷索引是不是合法

public void judge(int index) }

//找到某個節點

public node getnode(int index)

} return temp; }

//get函式

public object get(int index)

//tostring函式重寫

@override

public string tostring()

sb.setcharat(sb.length()-1, ']');

return sb.tostring(); }

//remove函式 移除指定結點

public void remove(int index)

//被刪除結點為尾結點

if(index == size-1)

//被刪除結點為中間的結點

if(one!=null)

if(two!=null)

size--;

} }

}

手工實現linkedList

鍊錶結構就像一根鏈條一樣,環環相扣。每一環 node entry 都由next previous,element 存放資料的地方 第乙個的next 是第二個,第二個的next是第三個,直到最後乙個的next 可以為null 最後第乙個的previous 是最後第二個,最後第二個的previous是最...

LinkedList手工實現01

linkedlist的底層是基於鍊錶實現的,所以查詢慢,增刪改快,但是執行緒不安全,效率較高。remove方法 add方法 get方法 getnode方法 author hq e mail ahmashq95 gmail.com date 2018 11 2.public class linkedl...

kmeans手工實現

演算法原理 kmeans的計算方法如下 1 隨機選取k個中心點 2 遍歷所有資料,將每個資料劃分到最近的中心點中 3 計算每個聚類的平均值,並作為新的中心點 4 重複n次,直到這k個中心點不再變化 收斂了 或執行了足夠多的迭代 實現 import math import random class c...