linkedlist集合:
陣列和list、arraylist集合都有乙個重大的缺陷,就是從陣列的中間位置刪除或插入乙個元素需要付出很大的代價,其原因是陣列中處於被刪除元素之後的所有元素都要向陣列的前端移動。
linkedlist(底層是由鍊錶實現的)基於鍊錶的資料結構,很好的解決了陣列刪除插入效率低的問題,且不用動態的擴充陣列的長度。
linkedlist的優點:插入、刪除元素效率比較高;缺點:訪問效率比較低。
mylinkedlist的實現:
using system;
using system.collections;
using system.collections.generic;
using system.linq;
namespace cchoop}}
class mylinkedlistnode
public mylinkedlistnodeprevious
public mylinkedlistnodenext
public mylinkedlistlist
public
mylinkedlistnode(mylinkedlistlist, mylinkedlistnodeprevious, mylinkedlistnodenext, t value)
}class mylinkedlist: icollection
public mylinkedlistnodelast
public
int count
public
mylinkedlist()
//未實現
private
mylinkedlist(icollectioncollection)
////// 新增到鍊錶尾部
//////
新增的資料
public
void
add(t item)
public mylinkedlistnodeaddbefore(mylinkedlistnodenode, t item)
if (node.list != this)
mylinkedlistnodenewnode = new mylinkedlistnode(this, node.previous, node, item);
if (node == this.first)
else
this.count++;
return newnode;
}public mylinkedlistnodeaddafter(mylinkedlistnodenode, t item)
mylinkedlistnodenewnode = new mylinkedlistnode(this, node, node.next, item);
if (node == this.last)
else
this.count++;
return newnode;
}public mylinkedlistnodeaddfirst(t item)
else
this.count++;
return node;
}public mylinkedlistnodeaddlast(t item)
else
this.count++;
return node;
}private
void
throwargumentnullexception(mylinkedlistnodenode)
}public
void
clear()
public
bool
contains(t item)
mylinkedlistnodetempnode = this.first;
while (tempnode != null)
tempnode = tempnode.next;
}return
false;
}public
bool
contains(t item, out mylinkedlistnodenode)
if (isempty)
mylinkedlistnodetempnode = this.first;
while (tempnode != null)
tempnode = tempnode.next;
}return
false;
}public
void
copyto(t array, int arrayindex)
public
bool isreadonly
}public
bool
remove(t item)
mylinkedlistnodenode;
if (this.contains(item, out node))
else
if (node == this.last && node != this.first)
else
if (node != this.first && node != this.last)
else
this.count--;
return
true;
}return
false;
}public
bool isempty
}public ienumeratorgetenumerator()
ienumerator ienumerable.getenumerator()
private
class enumerator : ienumerator
public t current
}public
void
dispose()
object ienumerator.current
}public
bool
movenext()
else
}public
void
reset()}}
}
java中LinkedList 集合類實現棧和佇列
across through over的區別 三者都有 穿過 通過 的意思,但用法各不相同。across多指從一定範圍的一邊到另一邊,且在物體的表面上或沿著某一條線的方向而進行的動作,其含義常與介詞on有關。如 the students ran across the playground into ...
LinkedList集合整理
jdk1.6以後的新特性 addfirst offerfirst addlast offerlast getfirst peekfirst getlast peeklast removefirst pollfirst removelast polllast jdk1.6以後,刪除或獲取元素時,如果列...
泛型集合 LinkedList
using system using system.collections.generic using system.linq using system.text using system.collections namespace linkedlist class program static v...