В этом примере мы напишем программу на языке C# для реализации обхода односвязного LinkedList
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 36 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 69 70 71 72 73 74 75 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace LinkedList { class singleLinkedlist { private int data; private singleLinkedlist next; public singleLinkedlist() { data = 0; next = null; } public singleLinkedlist(int value) { data = value; next = null; } public singleLinkedlist InsertNext(int value) { singleLinkedlist node = new singleLinkedlist(value); if (this.next == null) { node.next = null; this.next = node; } else { singleLinkedlist temp = this.next; node.next = temp; this.next = node; } return node; } public int DeleteNext() { if (next == null) return 0; singleLinkedlist node = this.next; this.next = this.next.next; node = null; return 1; } public void Traverse(singleLinkedlist node) { if (node == null) node = this; System.Console.WriteLine("Переход по односвязному списку :"); while (node != null) { System.Console.WriteLine(node.data); node = node.next; } } } class Program { static void Main(string[] args) { singleLinkedlist node1 = new singleLinkedlist(100); singleLinkedlist node2 = node1.InsertNext(200); singleLinkedlist node3 = node2.InsertNext(300); singleLinkedlist node4 = node3.InsertNext(400); singleLinkedlist node5 = node4.InsertNext(500); node1.Traverse(null); Console.WriteLine("Удаление из связанного списка..."); node3.DeleteNext(); node2.Traverse(null); Console.ReadKey(); } } } |
Вывод:
Переход по односвязному списку :
100
200
300
400
500
Удаление из связанного списка…
Переход по односвязному списку :
200
300
500