<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-7%3Arwan064</id>
	<title>SE250:lab-7:rwan064 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-7%3Arwan064"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-7:rwan064&amp;action=history"/>
	<updated>2026-04-29T03:04:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE250:lab-7:rwan064&amp;diff=7761&amp;oldid=prev</id>
		<title>Mark: 15 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-7:rwan064&amp;diff=7761&amp;oldid=prev"/>
		<updated>2008-11-03T05:20:19Z</updated>

		<summary type="html">&lt;p&gt;15 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Task 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Populate your tree with seven distinct elements, and navigate&lt;br /&gt;
around using “left”, “right”, “parent” and “root” until you are con-&lt;br /&gt;
fident you know what you are doing.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This was quite easy as all you do to insert an element is &amp;quot;insert [element]&amp;quot;. e.g. insert 2, to insert a &amp;quot;2&amp;quot; in the tree. And moving around the tree is quite trivial.&lt;br /&gt;
&lt;br /&gt;
== Task 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Clear the tree and insert the seven elements a–g in such an order&lt;br /&gt;
that the resulting tree is perfectly balanced. Record the order in&lt;br /&gt;
your lab report. Do any other insertion orders also result in a&lt;br /&gt;
perfectly balanced tree? Explain.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; clear tree&lt;br /&gt;
&amp;gt; i D&lt;br /&gt;
&amp;gt; i F&lt;br /&gt;
&amp;gt; i B&lt;br /&gt;
&amp;gt; i A&lt;br /&gt;
&amp;gt; i C&lt;br /&gt;
&amp;gt; i E&lt;br /&gt;
&amp;gt; i G&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final display command produces the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    A&lt;br /&gt;
  B&lt;br /&gt;
    C&lt;br /&gt;
D (*)&lt;br /&gt;
    E&lt;br /&gt;
  F&lt;br /&gt;
    G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do any other insertion orders also result in a perfectly balanced tree? &amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039;. Because there is only one median, lower quartile and upper quartile.&lt;br /&gt;
&lt;br /&gt;
== Task 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Skew the tree, then perform a left rotation on the root. Compare&lt;br /&gt;
the shape of the tree before and after the rotation. Confirm (using&lt;br /&gt;
&amp;quot;print&amp;quot;) the elements appear in the same order before and after&lt;br /&gt;
the rotation.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; skew&lt;br /&gt;
&amp;gt; print&lt;br /&gt;
Tree[*A*,B,C,D,E,F,G]&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
A (*)&lt;br /&gt;
  B&lt;br /&gt;
    C&lt;br /&gt;
      D&lt;br /&gt;
        E&lt;br /&gt;
          F&lt;br /&gt;
            G&lt;br /&gt;
&amp;gt; root&lt;br /&gt;
&amp;gt; rotate left&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A (*)&lt;br /&gt;
B&lt;br /&gt;
  C&lt;br /&gt;
    D&lt;br /&gt;
      E&lt;br /&gt;
        F&lt;br /&gt;
          G&lt;br /&gt;
&amp;gt; print&lt;br /&gt;
Tree[*A*,B,C,D,E,F,G]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Task 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Play around using left and right rotations to reshape the tree until&lt;br /&gt;
you are confident you understand how they work.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wierd stuff in the lab&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After doing Task 3 I have a tree that looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  A (*)&lt;br /&gt;
B&lt;br /&gt;
  C&lt;br /&gt;
    D&lt;br /&gt;
      E&lt;br /&gt;
        F&lt;br /&gt;
          G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then I tried the playing around with the rotations as it says on Task 4. I tried the commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; root&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A&lt;br /&gt;
B (*)&lt;br /&gt;
  C&lt;br /&gt;
    D&lt;br /&gt;
      E&lt;br /&gt;
        F&lt;br /&gt;
          G&lt;br /&gt;
&amp;gt; right&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A&lt;br /&gt;
B&lt;br /&gt;
  C (*)&lt;br /&gt;
    D&lt;br /&gt;
      E&lt;br /&gt;
        F&lt;br /&gt;
          G&lt;br /&gt;
&amp;gt; rotate left&lt;br /&gt;
  A&lt;br /&gt;
B&lt;br /&gt;
    C (*)&lt;br /&gt;
  D&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;gt; parent&lt;br /&gt;
  A&lt;br /&gt;
B (*)&lt;br /&gt;
    C&lt;br /&gt;
  D&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The selected node was &amp;quot;C&amp;quot; and the command &amp;#039;&amp;#039;&amp;#039;parent&amp;#039;&amp;#039;&amp;#039; (which moves to the parent of the selected node) moved to the node &amp;quot;B&amp;quot;!!! And clearly after the rotation, &amp;quot;B&amp;quot; should not be C&amp;#039;s parent. Also I tried the following commands to verify the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; root&lt;br /&gt;
&amp;gt; left&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A (*)&lt;br /&gt;
B&lt;br /&gt;
    C&lt;br /&gt;
  D&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;gt; parent&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A&lt;br /&gt;
B (*)&lt;br /&gt;
    C&lt;br /&gt;
  D&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;gt; right&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A&lt;br /&gt;
B&lt;br /&gt;
    C&lt;br /&gt;
  D (*)&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;gt; parent&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A&lt;br /&gt;
B (*)&lt;br /&gt;
    C&lt;br /&gt;
  D&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;gt; right&lt;br /&gt;
&amp;gt; left&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A&lt;br /&gt;
B&lt;br /&gt;
    C (*)&lt;br /&gt;
  D&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;gt; parent&lt;br /&gt;
&amp;gt; display&lt;br /&gt;
  A&lt;br /&gt;
B (*)&lt;br /&gt;
    C&lt;br /&gt;
  D&lt;br /&gt;
    E&lt;br /&gt;
      F&lt;br /&gt;
        G&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again, &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&amp;#039;s parent appears to be &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;! This means that &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039; has three children! Which means it is not a proper Binary Search Tree. Although &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039; does not &amp;quot;know&amp;quot; about the node &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;. i.e. there is no pointer to node &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; from the node &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;. But there is a pointer (the pointer to the parent) to node &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039; from &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;. Which means the tree &amp;#039;&amp;#039;&amp;#039;actually&amp;#039;&amp;#039;&amp;#039; looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;http://studwww.cs.auckland.ac.nz/~rwan064/lab7/se250lab7task4.png&amp;quot; width=&amp;quot;422&amp;quot; height=&amp;quot;499&amp;quot; alt=&amp;quot;se250-lab7-task4-tree&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>