雙向鍊錶
1.鍊錶的結點
class
node
public
node
(int data)
}
2.煉表頭插
public
class
doublelist
public
void
addfirst
(int elem)
node.next = head;
head.prev = node;
head = node;
}}
3.尾插
public
void
addlast
(int elem)
last.next = node;
node.prev = last;
last = node;
}
4.指定位置插入
public
void
addindex
(int index,
int elem)
if(index ==0)
if(index ==
size()
) node node =
newnode
(elem)
; node next =
search
(index)
;//找出該位置的結點,將給定的結點插入該位置之前
node prev = next.prev;
node.next = next;
next.prev = node;
prev.next = node;
node.prev = prev;
}
5.是否包含某元素
public
boolean
contains
(int key)
cur = cur.next;
}return
false
;}
6.刪除給定元素
public
void
remove
(int key)
else
else
}return
;//返回
} cur = cur.next;
}}
7.刪除給定值所有結點
public
void
removeallkey
(int key)
}else
else}}
cur = cur.next;
}}
相比較6,這裡只用刪掉return,讓cur遍歷完鍊錶。
8.清空鍊錶
public
void
clear()
this
.head = null;
this
.last = null;
}
9.列印鍊錶
public
void
display()
system.out.
println()
;}
10.鍊錶長度
private
intsize()
return size;
}
11.查詢給定位置的元素
private node search
(int index)
return cur;
}
12.在test中測試
public
class
testdoublelist
public
static
void
addf()
}
鍊錶專題 4 鍊錶
鍊錶是一大堆節點合起來連起來組成的表的總稱。其中每個節點中都有指標變數指向列表中的下乙個節點。鍊錶中第乙個節點被稱之為表頭 head 所以將第乙個節點的指標變數命名為head。最後乙個節點並沒有神馬特殊的名字,但是它 最後乙個節點 有一項特殊的屬性 最後乙個節點將null作為最後乙個變數的值 所以檢...
鍊錶 鍊錶環問題總結
給定乙個單鏈表,只給出頭指標h 1 如何判斷是否存在環?2 如何知道環的長度?3 如何找出環的連線點在 4 帶環鍊錶的長度是多少?1 如何判斷是否存在環?對於問題1,使用追趕的方法,設定兩個指標slow fast,從頭指標開始,每次分別前進1步 2步。如存在環,則兩者相遇 如不存在環,fast遇到n...
資料結構 鍊錶4 企業鍊錶
linklist.h ifndef linklist h define linklist h include include 鍊錶結點 typedef struct linknode linknode 鍊錶 typedef struct linklistlinklist 比較函式指標 typedef...