<?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%3Atlou006</id>
	<title>SE250:lab-4:tlou006 - 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%3Atlou006"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-4:tlou006&amp;action=history"/>
	<updated>2026-06-04T22:30:18Z</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:tlou006&amp;diff=6266&amp;oldid=prev</id>
		<title>Mark: 6 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-4:tlou006&amp;diff=6266&amp;oldid=prev"/>
		<updated>2008-11-03T05:19:39Z</updated>

		<summary type="html">&lt;p&gt;6 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Q1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Pre&amp;gt;int length(Cons* list) {&lt;br /&gt;
	int length;&lt;br /&gt;
	for( length = 0 ; list != nil; list = list-&amp;gt;tail ) {&lt;br /&gt;
		length++;&lt;br /&gt;
	}&lt;br /&gt;
	return length;&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loops through the list and returns the total length&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Q2 ==&lt;br /&gt;
Straight forward functions returning the first element in the list&lt;br /&gt;
&amp;lt;Pre&amp;gt;element_t first(Cons* list) {&lt;br /&gt;
	if(list == nil) &lt;br /&gt;
		return 0;&lt;br /&gt;
	else &lt;br /&gt;
	return list-&amp;gt;head;&lt;br /&gt;
	&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Pre&amp;gt;element_t fourth(Cons* list) {&lt;br /&gt;
	if(list == nil) &lt;br /&gt;
        return 0;&lt;br /&gt;
	else {&lt;br /&gt;
		list = list-&amp;gt;tail;&lt;br /&gt;
		list = list-&amp;gt;tail;&lt;br /&gt;
		list = list-&amp;gt;tail;&lt;br /&gt;
		return list-&amp;gt;head;&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I found out that it was possible to list = list-&amp;gt;tail-&amp;gt;tail-&amp;gt;tail etc..&lt;br /&gt;
&lt;br /&gt;
== Q3 ==&lt;br /&gt;
Same as the previous task except the action was placed in a loop&lt;br /&gt;
&amp;lt;Pre&amp;gt;element_t nth(int i, Cons* list) {&lt;br /&gt;
	int j;&lt;br /&gt;
	if(list == nil) &lt;br /&gt;
		return 0;&lt;br /&gt;
	else {&lt;br /&gt;
		for( j = 0; j &amp;lt; (i-1); j++ ) {&lt;br /&gt;
			list = list-&amp;gt;tail;&lt;br /&gt;
		}&lt;br /&gt;
		return list-&amp;gt;head;&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Q4 ==&lt;br /&gt;
This function loops through the list as long as the current values of both lists are the same, moving down the lists as soon as both lists are different or one list ends, then end the loop and return 0&lt;br /&gt;
&amp;lt;Pre&amp;gt;int equal(Cons* list1 , Cons* list2) {&lt;br /&gt;
&lt;br /&gt;
	while(list1-&amp;gt;head == list2-&amp;gt;head) {&lt;br /&gt;
		if((list1 == nil) &amp;amp;&amp;amp; (list2 == nil)) {&lt;br /&gt;
			return 1;&lt;br /&gt;
		} else if((list1 != nil) &amp;amp;&amp;amp; (list2 != nil)) {&lt;br /&gt;
			list1 = list1-&amp;gt;tail;&lt;br /&gt;
			list2 = list2-&amp;gt;tail;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If both lists end at the same time and the values are the same then return 1&lt;br /&gt;
&lt;br /&gt;
== Q5 ==&lt;br /&gt;
Had trouble thinking of code to loop through the list, so i used the example code instead lol&lt;br /&gt;
&amp;lt;Pre&amp;gt;Cons* find(element_t i, Cons* list) {&lt;br /&gt;
	for( ; list != nil; list = list-&amp;gt;tail ) {&lt;br /&gt;
		if(list-&amp;gt;head == i) {&lt;br /&gt;
			return list;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return nil;&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>