<?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-6%3Ajhor053</id>
	<title>SE250:lab-6:jhor053 - 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-6%3Ajhor053"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-6:jhor053&amp;action=history"/>
	<updated>2026-04-29T01:17:00Z</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-6:jhor053&amp;diff=7146&amp;oldid=prev</id>
		<title>Mark: 17 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-6:jhor053&amp;diff=7146&amp;oldid=prev"/>
		<updated>2008-11-03T05:20:05Z</updated>

		<summary type="html">&lt;p&gt;17 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Lab 6==&lt;br /&gt;
&lt;br /&gt;
===Task 1===&lt;br /&gt;
My code:&lt;br /&gt;
&amp;lt;pre&amp;gt;int main (void){&lt;br /&gt;
	Node *first;&lt;br /&gt;
	int i  = 0;&lt;br /&gt;
	//Node test;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	for(i = 0; i &amp;lt; 50; i++){&lt;br /&gt;
		first = makeRandomTree(i);&lt;br /&gt;
&lt;br /&gt;
		//show_tree(0, first);&lt;br /&gt;
&lt;br /&gt;
		//printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
		printf(&amp;quot;%d, %d\n&amp;quot;, i, height(first) );&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
My graph:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;img src=&amp;quot;http://www.gotmilk.co.nz/~gm_modnar/250labs/lab6/task1-01.jpg&amp;quot; border=&amp;quot;0&amp;quot; /&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
My  relationship:&lt;br /&gt;
I think that it is relatively  directly proportional but overall it is pretty random on either side of the line of best fit.&lt;br /&gt;
&lt;br /&gt;
===Task 2===&lt;br /&gt;
My code:&lt;br /&gt;
&amp;lt;pre&amp;gt;Node* minimum( Node* node ) {&lt;br /&gt;
	if( node-&amp;gt;left != empty)&lt;br /&gt;
		return minimum(node-&amp;gt;left);&lt;br /&gt;
	return node;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Node* maximum( Node* node ) {&lt;br /&gt;
  if( node-&amp;gt;right != empty)&lt;br /&gt;
		return maximum(node-&amp;gt;right);&lt;br /&gt;
  return node;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main (void){&lt;br /&gt;
	Node* first;&lt;br /&gt;
	Node *min;&lt;br /&gt;
	Node *max;&lt;br /&gt;
	int i  = 0;&lt;br /&gt;
	int minint, maxint;&lt;br /&gt;
	for(i = 1; i &amp;lt; 5; i++){&lt;br /&gt;
		first = makeRandomTree(i);&lt;br /&gt;
		show_tree(0, first);&lt;br /&gt;
		&lt;br /&gt;
		min = minimum(first);&lt;br /&gt;
		max = maximum(first);&lt;br /&gt;
		minint = min-&amp;gt;key;&lt;br /&gt;
		maxint = max-&amp;gt;key;&lt;br /&gt;
		printf(&amp;quot;The min is: %d\n&amp;quot;, minint );&lt;br /&gt;
		printf(&amp;quot;The max is: %d\n&amp;quot;, maxint );&lt;br /&gt;
		printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
	&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
My print out:&lt;br /&gt;
&amp;lt;pre&amp;gt;41 [0]&lt;br /&gt;
The min is: 41&lt;br /&gt;
The max is: 41&lt;br /&gt;
&lt;br /&gt;
  6334 [1]&lt;br /&gt;
18467 [0]&lt;br /&gt;
The min is: 6334&lt;br /&gt;
The max is: 18467&lt;br /&gt;
&lt;br /&gt;
    15724 [2]&lt;br /&gt;
  19169 [1]&lt;br /&gt;
26500 [0]&lt;br /&gt;
The min is: 15724&lt;br /&gt;
The max is: 26500&lt;br /&gt;
&lt;br /&gt;
11478 [0]&lt;br /&gt;
      24464 [3]&lt;br /&gt;
    26962 [2]&lt;br /&gt;
  29358 [1]&lt;br /&gt;
The min is: 11478&lt;br /&gt;
The max is: 29358&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Overall:&lt;br /&gt;
This wasn&amp;#039;t too bad is if the tree is implemented according to the defining principles it will work no problem.&lt;br /&gt;
&lt;br /&gt;
===Task 3===&lt;br /&gt;
My code:&lt;br /&gt;
&amp;lt;pre&amp;gt;Node* lookup( int key, Node* node ) {&lt;br /&gt;
	if(node == empty){&lt;br /&gt;
		return empty;&lt;br /&gt;
	}else if(key == node-&amp;gt;key){&lt;br /&gt;
		return node;&lt;br /&gt;
	}else if(key &amp;lt; node-&amp;gt;key){&lt;br /&gt;
		return lookup(key, node-&amp;gt;left);&lt;br /&gt;
	}else{&lt;br /&gt;
		return lookup(key, node-&amp;gt;right);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main (void){&lt;br /&gt;
	Node* first;&lt;br /&gt;
	Node *keyloc;&lt;br /&gt;
	int i  = 0;&lt;br /&gt;
	int lookupres, key;&lt;br /&gt;
	for(i = 1; i &amp;lt; 5; i++){&lt;br /&gt;
		first = makeRandomTree(i);&lt;br /&gt;
		show_tree(0, first);&lt;br /&gt;
		printf(&amp;quot;Please enter key to find: \n&amp;quot;);&lt;br /&gt;
		scanf(&amp;quot;%d&amp;quot;, &amp;amp;key);&lt;br /&gt;
		&lt;br /&gt;
		keyloc = lookup(key, first);&lt;br /&gt;
		if(keyloc == empty){&lt;br /&gt;
			lookupres = 0;&lt;br /&gt;
		}else{&lt;br /&gt;
			lookupres = keyloc-&amp;gt;key;&lt;br /&gt;
		}&lt;br /&gt;
		printf(&amp;quot;The key is: %d\n&amp;quot;, key );&lt;br /&gt;
		printf(&amp;quot;The FOUND key is: %d\n&amp;quot;, lookupres );&lt;br /&gt;
		printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
my output:&lt;br /&gt;
&amp;lt;pre&amp;gt;41 [0]&lt;br /&gt;
Please enter key to find:&lt;br /&gt;
5&lt;br /&gt;
The key is: 5&lt;br /&gt;
The FOUND key is: 0&lt;br /&gt;
&lt;br /&gt;
  6334 [1]&lt;br /&gt;
18467 [0]&lt;br /&gt;
Please enter key to find:&lt;br /&gt;
6334&lt;br /&gt;
The key is: 6334&lt;br /&gt;
The FOUND key is: 6334&lt;br /&gt;
&lt;br /&gt;
    15724 [2]&lt;br /&gt;
  19169 [1]&lt;br /&gt;
26500 [0]&lt;br /&gt;
Please enter key to find:&lt;br /&gt;
26500&lt;br /&gt;
The key is: 26500&lt;br /&gt;
The FOUND key is: 26500&lt;br /&gt;
&lt;br /&gt;
11478 [0]&lt;br /&gt;
      24464 [3]&lt;br /&gt;
    26962 [2]&lt;br /&gt;
  29358 [1]&lt;br /&gt;
Please enter key to find:&lt;br /&gt;
26962&lt;br /&gt;
The key is: 26962&lt;br /&gt;
The FOUND key is: 26962&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
It gets teh user input of what key to find after printing out the tree so as to be able to tell whether or not it exists in teh tree. Also prints out 0 for FOUND key if not found.&lt;br /&gt;
&lt;br /&gt;
It works first by checking whether it is an empty node and returns such if so. Next is if the key is equal to the current node and if so returns current node (ie found the key). Next it sees the key is smaller than the current node and if so will venture only off to the left as per the defining properties, the same applies to the next statement but as per going to teh right tree.&lt;br /&gt;
&lt;br /&gt;
Alternative way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Task 4===&lt;br /&gt;
&lt;br /&gt;
===Task 5===&lt;br /&gt;
&lt;br /&gt;
===Task 6===&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>