<?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%3Aasin185</id>
	<title>SE250:lab-4:asin185 - 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%3Aasin185"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-4:asin185&amp;action=history"/>
	<updated>2026-08-28T02:59:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE250:lab-4:asin185&amp;diff=6019&amp;oldid=prev</id>
		<title>Mark: 12 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-4:asin185&amp;diff=6019&amp;oldid=prev"/>
		<updated>2008-11-03T05:19:33Z</updated>

		<summary type="html">&lt;p&gt;12 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Lab 4 =&lt;br /&gt;
== Intro ==&lt;br /&gt;
&lt;br /&gt;
In this lab we explored linked list and the differences of their length and size.&lt;br /&gt;
&lt;br /&gt;
== length ==&lt;br /&gt;
  int length( Cons* list) {&lt;br /&gt;
     int i;&lt;br /&gt;
     for ( i = 0; list != nil ; i++) {&lt;br /&gt;
 	list = list-&amp;gt;tail;&lt;br /&gt;
     }&lt;br /&gt;
     return i;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Elements - First,Second,Third,Fourth ==&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;
 element_t second( Cons* list ) {&lt;br /&gt;
     int i;&lt;br /&gt;
     for ( i = 0; i &amp;lt; 1; i++) {&lt;br /&gt;
 	if (list == nil)&lt;br /&gt;
 	    return 0;&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;
&lt;br /&gt;
 element_t third( Cons* list ) {&lt;br /&gt;
     int i;&lt;br /&gt;
     for ( i = 0; i &amp;lt; 2; i++) {&lt;br /&gt;
 	if (list == nil)&lt;br /&gt;
 	    return 0;&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;
&lt;br /&gt;
 element_t fourth( Cons* list ) {&lt;br /&gt;
     int i;&lt;br /&gt;
     for ( i = 0; i &amp;lt; 3; i++) {&lt;br /&gt;
 	if (list == nil)&lt;br /&gt;
 	    return 0;&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;
&lt;br /&gt;
== Nth Element ==&lt;br /&gt;
 element_t nth( int i, Cons* list ) {&lt;br /&gt;
     for ( ; i &amp;gt; 0; i--) {&lt;br /&gt;
 	if (list == nil)&lt;br /&gt;
 	    return 0;&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;
&lt;br /&gt;
== Equal function ==&lt;br /&gt;
 int equal( Cons* first, Cons* second ) {&lt;br /&gt;
     while ( first-&amp;gt;head == second-&amp;gt;head ) {&lt;br /&gt;
 	if (first-&amp;gt;tail == nil &amp;amp;&amp;amp; second-&amp;gt;tail == nil)&lt;br /&gt;
 	    return 1;&lt;br /&gt;
 	first = first-&amp;gt;tail;&lt;br /&gt;
 	second = second-&amp;gt;tail;&lt;br /&gt;
     }&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Find function ==&lt;br /&gt;
 int equal( Cons* first, Cons* second ) {&lt;br /&gt;
     while ( first-&amp;gt;head == second-&amp;gt;head ) {&lt;br /&gt;
 	if (first-&amp;gt;tail == nil &amp;amp;&amp;amp; second-&amp;gt;tail == nil)&lt;br /&gt;
 	    return 1;&lt;br /&gt;
 	first = first-&amp;gt;tail;&lt;br /&gt;
 	second = second-&amp;gt;tail;&lt;br /&gt;
     }&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Copy list function ==&lt;br /&gt;
 Cons* copy_list( Cons* list ) {&lt;br /&gt;
     Cons* copied = nil;&lt;br /&gt;
     int size = length(list);&lt;br /&gt;
     int i; &lt;br /&gt;
 &lt;br /&gt;
     for ( i = 1; i &amp;lt; size + 1 ; i++ ) {&lt;br /&gt;
 	copied = cons(nth(size-i,list), copied);&lt;br /&gt;
     }&lt;br /&gt;
     return copied;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Append function ==&lt;br /&gt;
 Cons* append( Cons* xs, Cons* ys ) {&lt;br /&gt;
     int size = length(xs);&lt;br /&gt;
     int i;&lt;br /&gt;
 &lt;br /&gt;
     for ( i = 1 ; i &amp;lt; size + 1; i++ ) &lt;br /&gt;
 	ys = cons( nth( size-i, xs ), ys ); &lt;br /&gt;
 &lt;br /&gt;
     return ys;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Nappend function ==&lt;br /&gt;
 Cons* nappend( Cons** xs, Cons* ys )&lt;br /&gt;
&lt;br /&gt;
== Reverse function ==&lt;br /&gt;
 Cons* reverse( Cons* xs ) {&lt;br /&gt;
     Cons* reversed = nil;&lt;br /&gt;
     int size = length(xs);&lt;br /&gt;
     int i = 0; &lt;br /&gt;
 &lt;br /&gt;
     for ( i = 0 ; i &amp;lt; size; i++ )&lt;br /&gt;
 	reversed = cons( nth( i, xs), reversed );&lt;br /&gt;
     &lt;br /&gt;
     return reversed;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Nreverse function ==&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>