<?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-8%3Asrag014</id>
	<title>SE250:lab-8:srag014 - 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-8%3Asrag014"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-8:srag014&amp;action=history"/>
	<updated>2026-04-30T02:52:24Z</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-8:srag014&amp;diff=8372&amp;oldid=prev</id>
		<title>Mark: 1 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-8:srag014&amp;diff=8372&amp;oldid=prev"/>
		<updated>2008-11-03T05:20:31Z</updated>

		<summary type="html">&lt;p&gt;1 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;===Lab 8===&lt;br /&gt;
&lt;br /&gt;
Lab 8 is all about parse trees. &lt;br /&gt;
&lt;br /&gt;
===Task 1===&lt;br /&gt;
The first task was just to download the parsetree.c file...Quite an easy task! &lt;br /&gt;
&lt;br /&gt;
===Task 2===&lt;br /&gt;
The second task was to cnstruct an expression (calling mkNode) that, when passed to&lt;br /&gt;
prefix tree, produces the output. This task was not too bad, but it took me a while to figure &lt;br /&gt;
out that the file had some errors in it which I fixed eventually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 int main() {&lt;br /&gt;
 	ParseTree* t = mkNode(&amp;#039;-&amp;#039;, mkNode(&amp;#039;-&amp;#039;, mkNode(&amp;#039;a&amp;#039;, 0), mkNode(&amp;#039;b&amp;#039;, 0), 0), 0);&lt;br /&gt;
 	prefix_tree(t);&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Used the visual studio compiler&lt;br /&gt;
 &lt;br /&gt;
 cl parsetree.c&lt;br /&gt;
&lt;br /&gt;
then &lt;br /&gt;
&lt;br /&gt;
 parsetree.exe&lt;br /&gt;
&lt;br /&gt;
whcih gives the desire output! &lt;br /&gt;
&lt;br /&gt;
 -(-(a b))&lt;br /&gt;
&lt;br /&gt;
Graph was obtained by using the command:&lt;br /&gt;
&lt;br /&gt;
   tree_to_graph( t, &amp;quot;output.dot&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
Had to use output.dot since I used da Visual studio compiler then I had to enter that output in graphviz!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Task 3===&lt;br /&gt;
The third task was to construct a given expression.This task was a struggle, it took a while because I kept getting confused had to get &lt;br /&gt;
some help....got there in the end though.&lt;br /&gt;
&lt;br /&gt;
  int main() {&lt;br /&gt;
 ParseTree* t3 = mkNode( &amp;#039;?&amp;#039;, mkNode( &amp;#039;&amp;gt;&amp;#039;, mkNode( &amp;#039;+&amp;#039;, mkNode( &amp;#039;a&amp;#039;, 0 ), mkNode( &amp;#039;b&amp;#039;, 0 ), 0 ), mkNode( &amp;#039;c&amp;#039;, 0 ), 0 ),&lt;br /&gt;
                mkNode( &amp;#039;*&amp;#039;, mkNode( &amp;#039;z&amp;#039;, 0 ), mkNode( &amp;#039;+&amp;#039;, mkNode( &amp;#039;y&amp;#039;, 0 ), mkNode( &amp;#039;b&amp;#039;, 0 ), 0 ), 0 ),mkNode( &amp;#039;?&amp;#039;, mkNode( &amp;#039;=&amp;#039;, mkNode( &amp;#039;a&amp;#039;, 0 ), mkNode( &amp;#039;2&amp;#039;, 0 ), 0 ),&lt;br /&gt;
                mkNode( &amp;#039;-&amp;#039;, mkNode( &amp;#039;x&amp;#039;, 0 ), mkNode( &amp;#039;y&amp;#039;, 0 ), 0 ),mkNode( &amp;#039;-&amp;#039;, mkNode( &amp;#039;y&amp;#039;, 0 ), mkNode( &amp;#039;x&amp;#039;, 0 ), 0 ), 0 ), 0 );&lt;br /&gt;
 				prefix_tree(t3);&lt;br /&gt;
 				tree_to_graph( t3, &amp;quot;output3.dot&amp;quot; );&lt;br /&gt;
 			return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
===Task 4===&lt;br /&gt;
&lt;br /&gt;
The fourth task was just to get the graph from task 3.&lt;br /&gt;
Note:Graph to come soon&lt;br /&gt;
&lt;br /&gt;
===Task 5===&lt;br /&gt;
&lt;br /&gt;
Not sure...tried googling it but to no avail.&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>