Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public bool Add(int number)
- {
- Node newElement = new Node(number);
- //Falls es die Zahl gibt, soll die gebenene Zahl nicht eingefügt werden
- if(Exists(number))
- {
- return false;
- }
- //Falls das Array noch keine Größe hat, soll es vergrößert werden und das Element an erster Stelle einfügen
- if(lookup.Length == 0)
- {
- lookup = ExtendArray(lookup);
- lookup[0] = newElement;
- return true;
- }
- for(int i = 0; i < lookup.Length; i++)
- {
- Node temp = lookup[i];
- if (lookup[i].value > number)
- {
- newElement.next = lookup[i];
- lookup[i] = newElement;
- //falls die Column einen höheren Count hat, als die size festgelegt hat, wird ShiftLastElement ausgeführt, falls nicht wird true returnt
- /*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
- aus der vorherigen rausgelöscht und dieser Vorgang wird wiederholt,
- bis jede Liste die richtige Anzahl an Elementen hat*/
- return CountList(lookup[i]) > size ? ShiftLastElement(lookup[i]) : true;
- }
- //falls size höher als 1 ist, soll dies ausgeführt werden
- if (size > 1)
- {
- int count = 1;
- while (temp != null)
- {
- //falls temp.next leer ist und size größer oder gleich count+1 soll das Element einfach hinten drangehängt werden
- if(temp.next == null && size >= count + 1)
- {
- temp.next = newElement;
- return true;
- }
- //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
- if (temp.next != null && temp.next.value > number)
- {
- newElement.next = temp.next;
- temp.next = newElement;
- //falls die Column einen höheren Count hat, als die size festgelegt hat, wird ShiftLastElement ausgeführt, falls nicht wird true returnt
- /*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
- aus der vorherigen rausgelöscht und dieser Vorgang wird wiederholt,
- bis jede Liste die richtige Anzahl an Elementen hat*/
- return CountList(lookup[i]) > size ? ShiftLastElement(lookup[i]) : true;
- }
- count++;
- temp = temp.next;
- }
- }
- }
- //falls keiner der oberen Fälle zutrifft, soll das Array größer gemacht werden und das Element ganz am Ende eingefügt werden
- lookup = ExtendArray(lookup);
- lookup[lookup.Length - 1] = newElement;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement