Frage : Kann jemand gefallen, wie ich, wie man zwei sortierte verkettete Listen im c# vermischt? Es ist für Interview-BTW.

Ich sah Paarlösung in c, aber sie sind zu verwirrend mit Zeigern….jede mögliche Hilfe geschätzt in hohem Grade.

Antwort : Kann jemand gefallen, wie ich, wie man zwei sortierte verkettete Listen im c# vermischt? Es ist für Interview-BTW.

Dieses versuchen:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
        private Lücke button1_Click (Gegenstandabsender, EventArgs e)
        {
            LinkedList list1 = neues LinkedList ();
            list1.AddFirst („AA“);
            list1.AddLast („DD“);
            list1.AddLast („GG“);
            list1.AddLast („Millimeter“);
            list1.AddLast („oo“);
            list1.AddLast („xx“);

            LinkedList list2 = neues LinkedList ();
            list2.AddFirst („Bb“);
            list2.AddLast („cm“);
            list2.AddLast („FF“);
            list2.AddLast („nn“);
            list2.AddLast („JJ“);
            list2.AddLast („zz“);

            LinkedList vermischte = MergeSortedLists (list1, list2);
            foreach (Schnur s, in vermischt)
            {
                System.Diagnostics.Debug.WriteLine;
            }
        }

        privates LinkedList MergeSortedLists (LinkedList list1, LinkedList list2)
        {
            LinkedList vermischte = neues LinkedList ();
            LinkedListNode nodeCurrent1 = list1.First;
            LinkedListNode nodeCurrent2 = list2.First;

            während (! (nodeCurrent1==null && nodeCurrent2==null)){
                wenn (== nodeCurrent1 Null)
                {
                    merged.AddLast (nodeCurrent2.Value);
                    nodeCurrent2 = nodeCurrent2.Next;
                }
                sonst, wenn (== nodeCurrent2 Null)
                {
                    merged.AddLast (nodeCurrent1.Value);
                    nodeCurrent2 = nodeCurrent1.Next;
                }
                sonst
                {
                    int-comparisonResult = Schnur. Vergleichen (nodeCurrent1.Value, nodeCurrent2.Value);
                    wenn (comparisonResult < 0=""> 0)
                    {
                        merged.AddLast (nodeCurrent2.Value);
                        nodeCurrent2 = nodeCurrent2.Next;
                    }
                    sonst
                    {//-Schnüre sind gleich
                        merged.AddLast (nodeCurrent1.Value);
                        nodeCurrent1 = nodeCurrent1.Next;
                        merged.AddLast (nodeCurrent2.Value);
                        nodeCurrent2 = nodeCurrent2.Next;
                    }
                }

            }

            Rückkehr vermischte;
        }
Weitere Lösungen  
 
programming4us programming4us