回顧資料結構 鍊錶

2021-09-02 19:21:52 字數 1720 閱讀 5700

鍊錶真不是個東西

附上靈魂畫圖一張

}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號位置插入就...