<?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-4%3Amabd065</id>
	<title>SE250:lab-4:mabd065 - 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-4%3Amabd065"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-4:mabd065&amp;action=history"/>
	<updated>2026-04-29T02:22:47Z</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-4:mabd065&amp;diff=6107&amp;oldid=prev</id>
		<title>Mark: 2 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-4:mabd065&amp;diff=6107&amp;oldid=prev"/>
		<updated>2008-11-03T05:19:35Z</updated>

		<summary type="html">&lt;p&gt;2 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Task 1 ==&lt;br /&gt;
&lt;br /&gt;
 int length( Cons* list ) {&lt;br /&gt;
     int i = 0;&lt;br /&gt;
     for( ; list != nil; list = list-&amp;gt;tail ) { &lt;br /&gt;
 	i++;&lt;br /&gt;
     }&lt;br /&gt;
     return i;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
A straight forward task.&lt;br /&gt;
&lt;br /&gt;
== Task 2 ==&lt;br /&gt;
&lt;br /&gt;
Started with this code:&lt;br /&gt;
&lt;br /&gt;
 element_t first( Cons* list ) {&lt;br /&gt;
     int first_element;&lt;br /&gt;
     if (list != nil) {&lt;br /&gt;
  	first_element = list-&amp;gt;head;&lt;br /&gt;
 	return first_element;&lt;br /&gt;
     } else {&lt;br /&gt;
 	return 0;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This code worked fine. But the replaced it with a simpler one:&lt;br /&gt;
&lt;br /&gt;
 element_t first( Cons* list ) {&lt;br /&gt;
     return list-&amp;gt;head;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
And then the following tasks for returning a value:&lt;br /&gt;
&lt;br /&gt;
 element_t second( Cons* list ) {&lt;br /&gt;
     int i = 0, j = 1;&lt;br /&gt;
     while ( (i &amp;lt; j) &amp;amp;&amp;amp; (list != nil) ) {&lt;br /&gt;
 	list = list-&amp;gt;tail;&lt;br /&gt;
 	i++;&lt;br /&gt;
     }&lt;br /&gt;
     return list-&amp;gt;head;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 element_t third( Cons* list ) {&lt;br /&gt;
     int i = 0, j = 2;&lt;br /&gt;
     while ( (i &amp;lt; j) &amp;amp;&amp;amp; (list != nil) ) {&lt;br /&gt;
 	list = list-&amp;gt;tail;&lt;br /&gt;
 	i++;&lt;br /&gt;
     }&lt;br /&gt;
     return list-&amp;gt;head;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 element_t fourth( Cons* list ) {&lt;br /&gt;
     int i = 0, j = 3;&lt;br /&gt;
     while ( (i &amp;lt; j) &amp;amp;&amp;amp; (list != nil) ) {&lt;br /&gt;
 	list = list-&amp;gt;tail;&lt;br /&gt;
 	i++;&lt;br /&gt;
     }&lt;br /&gt;
     return list-&amp;gt;head;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 element_t nth(int k, Cons* list ) {&lt;br /&gt;
     int i = 0, j = (k);&lt;br /&gt;
     while ( (i &amp;lt; j) &amp;amp;&amp;amp; (list != nil) ) {&lt;br /&gt;
 	list = list-&amp;gt;tail;&lt;br /&gt;
 	i++;&lt;br /&gt;
     }&lt;br /&gt;
     return list-&amp;gt;head;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Task 3 ==&lt;br /&gt;
&lt;br /&gt;
The equal function. It took me a while to think about it:&lt;br /&gt;
&lt;br /&gt;
 int equal( Cons* list1, Cons* list2 ) {&lt;br /&gt;
     &lt;br /&gt;
     if ( length(list1) == length(list2) ) {&lt;br /&gt;
 	while ( list1 != nil ) {&lt;br /&gt;
 	    if (list1-&amp;gt;head == list2-&amp;gt;head) {&lt;br /&gt;
 		list1 = list1-&amp;gt;tail, list2 = list2-&amp;gt;tail;&lt;br /&gt;
 	    } else {&lt;br /&gt;
 		return 0;&lt;br /&gt;
 	    }&lt;br /&gt;
 	}&lt;br /&gt;
 	return 1;&lt;br /&gt;
     } else {&lt;br /&gt;
 	return 0;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Task 4 ==&lt;br /&gt;
&lt;br /&gt;
The find one was way simpler than i thought:&lt;br /&gt;
&lt;br /&gt;
 Cons* find( element_t value, Cons* list ) {&lt;br /&gt;
     while ( list != nil ) {&lt;br /&gt;
 	if (list-&amp;gt;head == value) {&lt;br /&gt;
 	    return list;&lt;br /&gt;
 	}&lt;br /&gt;
 	list = list-&amp;gt;tail;&lt;br /&gt;
     }&lt;br /&gt;
    return list; &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have tired my own test cases. But when i used the lecturer ones, i found some minor errors and fixed them.&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>