鍊錶真不是個東西
附上靈魂畫圖一張
}private node dummyhead;//虛擬頭節點
int size;
//無參建立鍊錶
public linkedlist()
//建立鍊錶,並將陣列放到鍊錶上
public linkedlist(e e )
//獲得鍊錶長度
public int getsize()
//判斷是否為空
public boolean isempty()
//在煉表頭新增元素
public void addfirst(e e)
//在鍊錶的index位置新增新的元素e
public void add (int index,e e)
node node = new node(e);//新建節點
node.next = prev.next;//將新節點的指標域指向index所在節點
prev.next = node;//將新節點接到index的前乙個節點指標域,完成新節點的插入
size++;
}//在末尾新增元素
public void addlast(e e)
//獲得鍊錶第index個位置的元素
public e get(int index)
//獲得第乙個元素
public e getfirst(e e)
public e getlast(e e)
//修改index下標的元素值
public void set(int index,e e)
//判斷是否有e元素
public boolean contains(e e)
return false;
}//刪除下標為index的元素
public e remove(int index)
node retnode = prev.next;//將index-1下標的節點所指向的下乙個節點賦值給新節點
//renode--就相當於index下標節點
prev.next = retnode.next;//將index下標所在節點的下乙個節點賦值給prev的指標域
retnode.next = null;//令retnode和鍊錶斷開
size--;
return retnode.e;
}public e removefirst()
public e removelast()
public string tostring()
return res.tostring();
}public static void main(string arg)
l.add(3,666);
system.out.println(l);
l.remove(2);
system.out.println(l);
l.set(4,888);
system.out.println(l);
}}
回顧資料結構 鍊錶棧
使用了之前實現棧時的介面 package zhan public inte ce stack使用了上乙個實現鍊錶的 太長不貼了。鍊錶棧 只要對鍊錶的第乙個資料進行操作,所以在鍊錶實現的基礎上是非常簡單的。全部呼叫鍊錶的方法就行 package zhan import lianbiao.linkedl...
鍊錶分割(資料結構基礎回顧)(鍊錶)
編寫 以給定值x為基準將鍊錶分割成兩部分,所有小於x的結點排在大於或等於x的結點之前 給定乙個鍊錶的頭指標 listnode phead,請返回重新排列後的鍊錶的頭指標。注意 分割以後保持原來的資料順序不變。定義兩個鍊錶,乙個放大的,乙個放小的,最後鏈結起來。struct listnode clas...
資料結構 回顧表ADT
1.對於表的所有操作來說,都可以使用陣列來實現,而且陣列雖然是靜態分配的,但內部儲存陣列的vector類卻允許在需要時將陣列的大小增加一倍。2.正是因為陣列的實現,使得printlist以線性時間來執行,而findkth甚至是通過常數時間。最不濟的是插入和刪除了,如果位置不好,比如說在0號位置插入就...