linkedlist的實現本質為乙個雙向鍊錶,下面是簡單的實現增刪改查:
public
class linkedlist
public
void
add(e e)
public
void
change(int index,e e)
nodetarget=node(index);
target.item=e;
}/**
* 刪除指定的節點
* @param index
*/public
void
remove(int index)
//找到節點
nodetarget=node(index);
unlinklist(target);
}public
void
unlinklist(nodetarget)else
if (next==null)else
size--;
}/**
*新增節點到指定的位置
* @param index 位置索引
* @param e
*/public
void
add(int index,e e)elseelseelse
target.prev=node;
size++;}}
}/**
* 根據索引獲取值
* @param index i
* @return
*/public e get(int index)
return node(index).item;
}private nodenode(int index)else
return node;}}
/*** 向鍊錶新增乙個節點 到尾部
* @param e
*/private
void
linklast(e e)else
size++;
}private
static
class node
}}
java資料結構之手動實現單鏈表
package com.example.demo 1 定義要儲存物件的類 class phone public phone string brand,double price public void setbrand string brand public void setprice double ...
資料結構 手寫hashmap
define size 100 位址鏈個數,足夠大 class simhash public simhash simhash delete map 清除陣列 void insert int key,int value node p map hash key 確定位址鏈索引 node q new no...
Java資料結構
arraylist 基於 array,在記憶體中占有連續空間,所以get index 時候,根據陣列首位址 偏移量就可以取到值 linklist 基於link,在記憶體中不連續,每個元素只知道下乙個元素,所以get時候,只能從首元素開始乙個乙個去找,效率相對較慢 增加刪除 arraylist 需要變...