Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public bool Add(int number)
- {
- for (int i = 0; i < lookup.Length; i++)
- {
- int counter = 0;
- Node current = lookup[i];
- while (current != null)
- {
- counter++;
- current = current.next;
- }
- if (counter == x) continue;
- Node previous = null;
- for (Node j = lookup[i]; j != null; j = j.next)
- {
- if (j.zahl > number)
- {
- // (12, 1, {Node: 15})
- InsertNumber(number, i, previous, j);
- return true;
- }
- if (j.zahl == number)
- return false;
- previous = j;
- }
- if(previous == null)
- {
- lookup[i] = new Node(number);
- return true;
- }
- else if (previous.next == null)
- {
- InsertNumber(number, i, previous, null);
- return true;
- }
- }
- return true;
- }
- //Parametererklärung:
- // number: Zahl die eingefügt werden soll
- // nodeIndex: Die Spalte in der die Zahl eingefügt werden soll
- // previous: Der Node, nach dem die Zahl eingefügt werden soll
- // place: Der Node, vor dem die Zahl eingefügt werden soll
- private void InsertNumber(int number, int nodeIndex, Node previous, Node place)
- {
- Node newElement = new Node(number);
- newElement.next = place;
- if (previous == null)
- {
- lookup[nodeIndex] = newElement;
- }
- else
- {
- previous.next = newElement;
- }
- int counter = 1;
- Node before = null;
- Node current = lookup[nodeIndex];
- while(current.next != null)
- {
- counter++;
- before = current;
- current = current.next;
- }
- // Nach dieser Schleife ist current das letzte Element in dieser LinkedList
- if (counter > x)
- {
- before.next = null;
- Add(current.zahl);
- }
- if (counter == x && nodeIndex == lookup.Length - 1)
- {
- AddList();
- }
- }
- private void AddList()
- {
- Node[] newLookup = new Node[lookup.Length + 1];
- for (int i = 0; i < lookup.Length; i++)
- {
- newLookup[i] = lookup[i];
- }
- lookup = newLookup;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement