Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. public bool Add(int number)
  2. {
  3. for (int i = 0; i < lookup.Length; i++)
  4. {
  5. int counter = 0;
  6. Node current = lookup[i];
  7. while (current != null)
  8. {
  9. counter++;
  10. current = current.next;
  11. }
  12. if (counter == x) continue;
  13.  
  14. Node previous = null;
  15. for (Node j = lookup[i]; j != null; j = j.next)
  16. {
  17. if (j.zahl > number)
  18. {
  19. // (12, 1, {Node: 15})
  20. InsertNumber(number, i, previous, j);
  21. return true;
  22. }
  23. if (j.zahl == number)
  24. return false;
  25.  
  26. previous = j;
  27. }
  28.  
  29. if(previous == null)
  30. {
  31. lookup[i] = new Node(number);
  32. return true;
  33. }
  34. else if (previous.next == null)
  35. {
  36. InsertNumber(number, i, previous, null);
  37. return true;
  38. }
  39. }
  40.  
  41. return true;
  42. }
  43.  
  44. //Parametererklärung:
  45. // number: Zahl die eingefügt werden soll
  46. // nodeIndex: Die Spalte in der die Zahl eingefügt werden soll
  47. // previous: Der Node, nach dem die Zahl eingefügt werden soll
  48. // place: Der Node, vor dem die Zahl eingefügt werden soll
  49. private void InsertNumber(int number, int nodeIndex, Node previous, Node place)
  50. {
  51. Node newElement = new Node(number);
  52. newElement.next = place;
  53.  
  54. if (previous == null)
  55. {
  56. lookup[nodeIndex] = newElement;
  57. }
  58. else
  59. {
  60. previous.next = newElement;
  61. }
  62.  
  63. int counter = 1;
  64. Node before = null;
  65. Node current = lookup[nodeIndex];
  66. while(current.next != null)
  67. {
  68. counter++;
  69. before = current;
  70. current = current.next;
  71. }
  72. // Nach dieser Schleife ist current das letzte Element in dieser LinkedList
  73.  
  74. if (counter > x)
  75. {
  76. before.next = null;
  77. Add(current.zahl);
  78. }
  79. if (counter == x && nodeIndex == lookup.Length - 1)
  80. {
  81. AddList();
  82. }
  83. }
  84.  
  85. private void AddList()
  86. {
  87. Node[] newLookup = new Node[lookup.Length + 1];
  88.  
  89. for (int i = 0; i < lookup.Length; i++)
  90. {
  91. newLookup[i] = lookup[i];
  92. }
  93. lookup = newLookup;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement