<?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%3Ahlin079</id>
	<title>SE250:lab-4:hlin079 - 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%3Ahlin079"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-4:hlin079&amp;action=history"/>
	<updated>2026-04-28T22:36:39Z</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:hlin079&amp;diff=6064&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:hlin079&amp;diff=6064&amp;oldid=prev"/>
		<updated>2008-11-03T05:19:34Z</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;====function int leght====&lt;br /&gt;
 int lenght(Cons*list){&lt;br /&gt;
 int count=0;&lt;br /&gt;
 for (;list!=nil;list=list-&amp;gt;tail){&lt;br /&gt;
   count++;&lt;br /&gt;
    }&lt;br /&gt;
 return count;&lt;br /&gt;
 }&lt;br /&gt;
====function element_t nth(inti, Cons*)====&lt;br /&gt;
 &amp;lt;pre&amp;gt;element_t nth(int i,Cons*list){&lt;br /&gt;
    int count=0;&lt;br /&gt;
    for (;list!=nil;list=list-&amp;gt;tail){&lt;br /&gt;
	if (i!=count){&lt;br /&gt;
	    count++;&lt;br /&gt;
 }&lt;br /&gt;
 else {&lt;br /&gt;
	    break;&lt;br /&gt;
	}&lt;br /&gt;
	&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;
====Equal function====&lt;br /&gt;
 int equal(Cons*list,Cons*list2){&lt;br /&gt;
    for(;list!=nil&amp;amp;&amp;amp;list2!=nil;list=list-&amp;gt;tail,list2=list2-&amp;gt;tail){&lt;br /&gt;
	if (list-&amp;gt;head!=list2-&amp;gt;head){&lt;br /&gt;
&lt;br /&gt;
	    return 0;&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
    }&lt;br /&gt;
  if (list==list2){&lt;br /&gt;
&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
 }&lt;br /&gt;
==== find function==== &lt;br /&gt;
 Cons*find(element_t q,Cons*list){&lt;br /&gt;
    for (;list!=nil;list=list-&amp;gt;tail){&lt;br /&gt;
	if (list-&amp;gt;head==q){&lt;br /&gt;
	    return list;&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
    return nil;&lt;br /&gt;
 }&lt;br /&gt;
====copy function====&lt;br /&gt;
 Cons*copy_list(Cons*list){&lt;br /&gt;
    int w= lenght(list);&lt;br /&gt;
    int i;&lt;br /&gt;
    Cons*list2;&lt;br /&gt;
    Cons*start;&lt;br /&gt;
    list2=nil;&lt;br /&gt;
    for ( i=0;i&amp;lt;w;i++){&lt;br /&gt;
    list2=cons(0,list2);&lt;br /&gt;
    }&lt;br /&gt;
    start=list2;&lt;br /&gt;
    for (;list!=nil&amp;amp;&amp;amp;list2!=nil;list=list-&amp;gt;tail,list2=list2-&amp;gt;tail){&lt;br /&gt;
	list2-&amp;gt;head=list-&amp;gt;head;&lt;br /&gt;
    }&lt;br /&gt;
    return start;&lt;br /&gt;
 }&lt;br /&gt;
first of all, i setup the lenght of list2. After setup the lenght , i used for loop to put each element in the list to list2.&lt;br /&gt;
====append function====&lt;br /&gt;
 Cons*append(Cons*list,Cons*list2){&lt;br /&gt;
    int w= lenght (list)+lenght(list2);&lt;br /&gt;
    int i;&lt;br /&gt;
    Cons* list3;&lt;br /&gt;
    Cons*start1;&lt;br /&gt;
    list3=nil;&lt;br /&gt;
    for (i=0;i&amp;lt;=w;i++){&lt;br /&gt;
	list3=cons(0,list3);&lt;br /&gt;
    }&lt;br /&gt;
    start1=list3;&lt;br /&gt;
    for (;list!=nil&amp;amp;&amp;amp;list3!=nil;list=list-&amp;gt;tail,list3=list3-&amp;gt;tail){&lt;br /&gt;
    list3-&amp;gt;head=list-&amp;gt;head;&lt;br /&gt;
    }&lt;br /&gt;
 for (;list2!=nil&amp;amp;&amp;amp;list3!=nil;list2=list2-&amp;gt;tail,list3=list3-&amp;gt;tail){&lt;br /&gt;
    list3-&amp;gt;head=list2-&amp;gt;head;&lt;br /&gt;
 }&lt;br /&gt;
 return  start1;&lt;br /&gt;
 }   &lt;br /&gt;
at frist i did not set list3 to nil. also i did not have Cons*start when i run the file with the main &lt;br /&gt;
 int main( ) {&lt;br /&gt;
    Cons*list;&lt;br /&gt;
    Cons*list2;&lt;br /&gt;
    Cons*both;&lt;br /&gt;
    print_list(list= cons(1,cons(2,cons(3,nil))) ); /* expect: List[1,2,3] */&lt;br /&gt;
    print_list(list2= cons(4,cons(5,cons(6,nil))) );&lt;br /&gt;
&lt;br /&gt;
    both=append(list,list2);  &lt;br /&gt;
    print_list(both);&lt;br /&gt;
    printf(&amp;quot;%d&amp;quot;,lenght( cons(1,cons(2,cons(3,nil)))) );&lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
it produced an error .&lt;br /&gt;
after i changed my code the statement.The print_list(both) printed out &lt;br /&gt;
list[1,2,3,4,5,6,0] i think it was caused by&lt;br /&gt;
  for (i=0;i&amp;lt;=w;i++){&lt;br /&gt;
	list3=cons(0,list3);&lt;br /&gt;
so i changed my code to&lt;br /&gt;
 for (i=0;i&amp;lt;w;i++){&lt;br /&gt;
	list3=cons(0,list3);&lt;br /&gt;
my new code for the append function is &lt;br /&gt;
  int w= lenght (list)+lenght(list2);&lt;br /&gt;
    int i;&lt;br /&gt;
    Cons* list3;&lt;br /&gt;
    Cons*start1;&lt;br /&gt;
    list3=nil;&lt;br /&gt;
    for (i=0;i&amp;lt;w;i++){&lt;br /&gt;
	list3=cons(0,list3);&lt;br /&gt;
    }&lt;br /&gt;
    start1=list3;&lt;br /&gt;
    for (;list!=nil&amp;amp;&amp;amp;list3!=nil;list=list-&amp;gt;tail,list3=list3-&amp;gt;tail){&lt;br /&gt;
    list3-&amp;gt;head=list-&amp;gt;head;&lt;br /&gt;
    }&lt;br /&gt;
 for (;list2!=nil&amp;amp;&amp;amp;list3!=nil;list2=list2-&amp;gt;tail,list3=list3-&amp;gt;tail){&lt;br /&gt;
    list3-&amp;gt;head=list2-&amp;gt;head;&lt;br /&gt;
 }&lt;br /&gt;
 return  start1;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>