<?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%3Asshi080</id>
	<title>SE250:lab-8:sshi080 - 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%3Asshi080"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-8:sshi080&amp;action=history"/>
	<updated>2026-04-28T13:25:03Z</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:sshi080&amp;diff=8386&amp;oldid=prev</id>
		<title>Mark: 13 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-8:sshi080&amp;diff=8386&amp;oldid=prev"/>
		<updated>2008-11-03T05:20:31Z</updated>

		<summary type="html">&lt;p&gt;13 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;
=== Task 1 ===&lt;br /&gt;
&lt;br /&gt;
Downloading the code was simple enough :)&lt;br /&gt;
&lt;br /&gt;
=== Task 2 ===&lt;br /&gt;
&lt;br /&gt;
Took me like 30 minutes just to get the freakin thing to compile, first of all the error function didn&amp;#039;t work because it was declared AFTER expect() tries to call it.&lt;br /&gt;
Also got an error from &amp;quot;strcimp&amp;quot;, I googled it and it clearly was a typo, I didn&amp;#039;t think there was a strcimp function in the library ~_~.&lt;br /&gt;
&lt;br /&gt;
Here is the code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-(-(a b))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Graph:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;http://orlybird.com/SE250/graph1.png&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Task 3 ===&lt;br /&gt;
&lt;br /&gt;
This task isn&amp;#039;t hard if you split the expression into subgroups. It confused the hell out of me when I didn&amp;#039;t split the expression into groups, I first ended up with this looooong line which totally buzzed me out, then I split the expression into subgroups and got the thing.&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ParseTree* greaterthan = 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;
ParseTree* multiply = 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);&lt;br /&gt;
ParseTree* equals = mkNode(&amp;#039;=&amp;#039;, mkNode(&amp;#039;a&amp;#039;, 0), mkNode(&amp;#039;2&amp;#039;, 0), 0);&lt;br /&gt;
ParseTree* minus1 = mkNode(&amp;#039;-&amp;#039;, mkNode(&amp;#039;x&amp;#039;, 0), mkNode(&amp;#039;y&amp;#039;, 0), 0);&lt;br /&gt;
ParseTree* minus2 = mkNode(&amp;#039;-&amp;#039;, mkNode(&amp;#039;y&amp;#039;, 0), mkNode(&amp;#039;x&amp;#039;, 0), 0);&lt;br /&gt;
ParseTree* question2 = mkNode(&amp;#039;?&amp;#039;, equals, minus1, minus2, 0);&lt;br /&gt;
ParseTree* full = mkNode(&amp;#039;?&amp;#039;, greaterthan, multiply, question2, 0);&lt;br /&gt;
&lt;br /&gt;
prefix_tree(full);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Graph:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;http://orlybird.com/SE250/graph2.png&amp;quot;&amp;gt;&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>