Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROCEDURE (n: Node) Add(VAR datakey: Data);
- VAR
- temp: Data;
- BEGIN
- NEW(n^.data2);
- Out.String("Entering Add");
- NEW(temp);
- IF (datakey^.value > n^.data1^.value) THEN
- Out.String("Casus 1"); Out.Ln();
- IF (n^.data2 = NIL) THEN
- NEW(n^.data2);
- n^.data2^.value := datakey^.value; Out.Int(1,0);
- ELSIF (n^.data2 # NIL) THEN
- IF ((datakey^.value > n^.data1^.value) & (n^.data2^.value > datakey^.value)) THEN
- IF ((n^.middle = NIL) & (n^.IsFull())) THEN
- NEW(n^.overflowdata);
- n^.overflowdata^.value := n^.data2^.value;
- n^.data2^.value := datakey^.value;
- Out.String("Splitting");
- Out.Ln();
- Split(n);
- ELSIF (n^.middle # NIL) THEN
- n^.middle^.Add(datakey); Out.Int(2,0);
- END;
- END;
- ELSE
- Out.String("Hier zou ik nooit moeten komen. #1");
- Out.Ln();
- END;
- ELSIF (n^.data2 # NIL) THEN
- IF (datakey^.value > n^.data2^.value) THEN
- Out.String("Casus 2"); Out.Ln();
- IF (n^.right # NIL) THEN
- n^.right^.Add(datakey); Out.Int(3,0);
- ELSIF ((n^.right = NIL) & (n^.IsFull())) THEN
- NEW(n^.overflowdata);
- n^.overflowdata^.value := datakey^.value;
- Out.String("Splitting.");
- Out.Ln();
- Split(n);
- ELSE
- Out.String("Hier zou ik nooit moeten komen. #2");
- Out.Ln();
- END;
- END;
- ELSIF (datakey^.value < n^.data1^.value) THEN
- Out.String("Casus 3"); Out.Ln();
- IF (n^.data2 = NIL) THEN
- NEW(n^.data2);
- temp^.value := n^.data1^.value;
- n^.data1^.value := datakey^.value;
- n^.data2^.value := temp^.value; Out.Int(4,0);
- ELSIF ((n^.IsFull()) & (n^.left # NIL)) THEN
- n^.left^.Add(datakey);Out.Int(5,0);
- ELSIF ((n^.IsFull()) & (n^.left = NIL)) THEN
- NEW(n^.overflowdata);
- n^.overflowdata^.value := n^.data2^.value;
- n^.data2^.value := n^.data1^.value;
- n^.data1^.value := datakey^.value;
- Out.String("Splitting.");
- Out.Ln();
- Split(n);
- ELSE
- Out.String("Hier zou ik nooit moeten komen. #3");
- Out.Ln();
- END;
- ELSE
- Out.String("Ik heb dit helemaal fout gedaan.");
- Out.Ln();
- END;
- END Add;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement