Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. public bool Add(int number)
  2. {
  3. Node newElement = new Node(number);
  4.  
  5. //Falls es die Zahl gibt, soll die gebenene Zahl nicht eingefügt werden
  6. if(Exists(number))
  7. {
  8. return false;
  9. }
  10.  
  11. //Falls das Array noch keine Größe hat, soll es vergrößert werden und das Element an erster Stelle einfügen
  12. if(lookup.Length == 0)
  13. {
  14. lookup = ExtendArray(lookup);
  15.  
  16. lookup[0] = newElement;
  17. return true;
  18. }
  19.  
  20. for(int i = 0; i < lookup.Length; i++)
  21. {
  22. Node temp = lookup[i];
  23.  
  24. if (lookup[i].value > number)
  25. {
  26. newElement.next = lookup[i];
  27. lookup[i] = newElement;
  28. //falls die Column einen höheren Count hat, als die size festgelegt hat, wird ShiftLastElement ausgeführt, falls nicht wird true returnt
  29. /*ShiftLastElement: Falls die Anzahl der Elemente in einer Node-Liste > size, wird das letzte Element dieser Node-Liste in die Nächste eingefügt und
  30. aus der vorherigen rausgelöscht und dieser Vorgang wird wiederholt,
  31. bis jede Liste die richtige Anzahl an Elementen hat*/
  32. return CountList(lookup[i]) > size ? ShiftLastElement(lookup[i]) : true;
  33. }
  34.  
  35. //falls size höher als 1 ist, soll dies ausgeführt werden
  36. if (size > 1)
  37. {
  38. int count = 1;
  39. while (temp != null)
  40. {
  41. //falls temp.next leer ist und size größer oder gleich count+1 soll das Element einfach hinten drangehängt werden
  42. if(temp.next == null && size >= count + 1)
  43. {
  44. temp.next = newElement;
  45. return true;
  46. }
  47.  
  48. //falls es temp.next nicht leer ist und temp.next.value größer als number ist, soll das Element zwischen temp und temp.next eingefügt werden
  49. if (temp.next != null && temp.next.value > number)
  50. {
  51. newElement.next = temp.next;
  52. temp.next = newElement;
  53. //falls die Column einen höheren Count hat, als die size festgelegt hat, wird ShiftLastElement ausgeführt, falls nicht wird true returnt
  54. /*ShiftLastElement: Falls die Anzahl der Elemente in einer Node-Liste > size, wird das letzte Element dieser Node-Liste in die Nächste eingefügt und
  55. aus der vorherigen rausgelöscht und dieser Vorgang wird wiederholt,
  56. bis jede Liste die richtige Anzahl an Elementen hat*/
  57. return CountList(lookup[i]) > size ? ShiftLastElement(lookup[i]) : true;
  58. }
  59.  
  60. count++;
  61. temp = temp.next;
  62. }
  63. }
  64. }
  65.  
  66. //falls keiner der oberen Fälle zutrifft, soll das Array größer gemacht werden und das Element ganz am Ende eingefügt werden
  67. lookup = ExtendArray(lookup);
  68. lookup[lookup.Length - 1] = newElement;
  69.  
  70. return true;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement