Listex

Allikas: Lambda
Redaktsioon seisuga 1. detsember 2008, kell 13:35 kasutajalt Tammet (arutelu | kaastöö)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribale Mine otsikasti


public class Listex {

    

  static int[] a;  

   

  public static void main(String[] arg) {

    System.out.println("listex starts");

    

    // create and initialise an array a

      

    a=new int[5];

    a[0]=10;

    a[1]=20;

    a[2]=30;

    a[3]=40;

    a[4]=50;      

          

    for(int i=0; i<a.length; i++) {

       System.out.println("a elem "+i+" is: "+a[i]); 

    }        

    

    // build a new list from array a, storing start at ls

    

    Listnode ls=null; // list start

    Listnode ln=null; // current (temporary) list node

    Listnode lp=null; // previous (temporary) list node

    for(int i=0; i<a.length; i++) {

      ln=new Listnode();

      if (i==0) ls=ln;  

      ln.data=a[i];

      ln.next=null;          

      if (lp!=null) lp.next=ln;

      lp=ln;          

    }

    

    // go through the list, print out all data, count els

    

    int count=0;

    for(ln=ls; ln!=null; ln=ln.next) {

      count++;  

      System.out.println("node data: "+ln.data);        

    }    

    

    // go through the list and store data to a new array

    

    int[] b;

    b=new int[count];    

    count=0;    

    for(ln=ls; ln!=null; ln=ln.next) {

      b[count]=ln.data;  

      count++;              

    }

    

    

    // go thorugh array b and print els

    

    for(int i=0; i<b.length; i++) {

       System.out.println("b elem "+i+" is: "+b[i]); 

    }  

    

    // add a new node containing 100 

    // after el containing 30

    

    Listnode nn;

    for(ln=ls; ln!=null; ln=ln.next) {

      if (ln.data==30) {

        nn=new Listnode();

        nn.data=100;           

        nn.next=ln.next;

        ln.next=nn;

        break;                

      }                  

    } 

    

    ls.listprint();    

    

    System.out.println("listex ends");  

  } 







}  



class Listnode {

  int data;   

  Listnode next; 

      

int listprint() {

  // go through the list, print out all data, count els

  

  Listnode ln;

    

  int count=0;

  for(ln=this; ln!=null; ln=ln.next) {

    count++;  

    System.out.println("node data: "+ln.data);        

  }    

  return count;       

}    

}