Listex
Allikas: Lambda
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;
}
}