vide privé button1_Click (expéditeur d'objet, EventArgs e)
{
LinkedList list1 = nouveau LinkedList () ;
list1.AddFirst (« aa ») ;
list1.AddLast (« densité double ») ;
list1.AddLast (« gg ») ;
list1.AddLast (« millimètre ») ;
list1.AddLast (« oo ») ;
list1.AddLast (« xx ») ;
LinkedList list2 = nouveau LinkedList () ;
list2.AddFirst (« bb ») ;
list2.AddLast (« cc ») ;
list2.AddLast (« FF ») ;
list2.AddLast (« nn ») ;
list2.AddLast (« yy ») ;
list2.AddLast (« zz ») ;
LinkedList a fusionné = MergeSortedLists (list1, list2) ;
foreach (corde s dans fusionné)
{
System.Diagnostics.Debug.WriteLine ;
}
}
LinkedList privé MergeSortedLists (LinkedList list1, LinkedList list2)
{
LinkedList a fusionné = nouveau LinkedList () ;
LinkedListNode nodeCurrent1 = list1.First ;
LinkedListNode nodeCurrent2 = list2.First ;
tandis que (! (&& nodeCurrent2==null de nodeCurrent1==null)){
si (nulle de == nodeCurrent1)
{
merged.AddLast (nodeCurrent2.Value) ;
nodeCurrent2 = nodeCurrent2.Next ;
}
autrement si (nulle de == nodeCurrent2)
{
merged.AddLast (nodeCurrent1.Value) ;
nodeCurrent2 = nodeCurrent1.Next ;
}
autrement
{
comparisonResult = corde d'international. Comparer (nodeCurrent1.Value, nodeCurrent2.Value) ;
si (comparisonResult < 0=""> 0)
{
merged.AddLast (nodeCurrent2.Value) ;
nodeCurrent2 = nodeCurrent2.Next ;
}
autrement
{les cordes de // sont égales
merged.AddLast (nodeCurrent1.Value) ;
nodeCurrent1 = nodeCurrent1.Next ;
merged.AddLast (nodeCurrent2.Value) ;
nodeCurrent2 = nodeCurrent2.Next ;
}
}
}
le retour a fusionné ;
}
|