import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; import java.util.Random; import java.util.Scanner; import static java.lang.System.out; public class Lab31p2 { public static void main(String args[]) { MyList list1 = new MyStack(100); MyList list2 = new MyQueuee(100); OurList list3 = new OurSet(); OurList list4 = new OurOrdList(); Random rnd = new Random(12345); for (int k = 1; k <= 20; k++) { int rndInt = rnd.nextInt(20) + 10; addData(list1,rndInt); addData(list2,rndInt); addOurData(list3,rndInt); addOurData(list4,rndInt); } showData(list1,list2,list3,list4); out.println(); for (int k = 1; k <= 5; k++) { removeData(list1); removeData(list2); // ask the user right here what element to remove from each list out.print("What element do you want removed? ==> "); Scanner f=new Scanner(System.in); int element=f.nextInt(); removeOurData(list3, element ); removeOurData(list4, element ); } showData(list1,list2,list3,list4); out.println(); } public static void addData(MyList l1, int x) { l1.add(x); } public static void removeData(MyList l1) { l1.remove(); } public static void showData(MyList l1, MyList l2,OurList l3, OurList l4) { out.println(l1); out.println(l2); out.println(l3); out.println(l4); } public static void addOurData(OurList l1,int x) { l1.add(x); } public static void removeOurData(OurList l1,int x) { l1.remove(x); } } abstract class OurList { public abstract void add(int x); public abstract boolean remove(int x); public abstract boolean isEmpty(); public abstract int getSize(); } class OurSet extends OurList { private ArrayList arr; private int end; public OurSet() { arr = new ArrayList(); end = 0; } public void add(int x) { boolean TF = false; ListIterator iter = arr.listIterator(); while (iter.hasNext()) { if ((Integer) iter.next() == x) TF = true; } if (TF == false) { iter.add(x); end++; } } public boolean remove(int x) { ListIterator iter = arr.listIterator(); while (iter.hasNext()) { if (iter.next() == x) { iter.remove(); end--; return true; } } return false; } public boolean isEmpty() { return end == 0; } public int getSize() {return end;} public String toString() { ListIterator iter = arr.listIterator(); String ret = "["; while (iter.hasNext()) { int x=iter.next(); if (!iter.hasNext()) { ret = ret + x + "] "; } else ret = ret + x + ", "; } return ret; } } class OurOrdList extends OurList { private ArrayList arr; private int end; public OurOrdList() { arr = new ArrayList(); end = 0; } public void add(int x) { boolean TF = false; int ex = 0; int exx; ListIterator iter = arr.listIterator(); while (iter.hasNext() && TF == false) { ex = iter.next(); if (x <= ex) { iter.set(x); iter.add(ex); end++; TF = true; } } if (TF == false) { iter.add(x); TF = true; end++; } } public boolean remove(int x) { ListIterator iter = arr.listIterator(); while (iter.hasNext()) { if (iter.next() == x) { iter.remove(); end--; return true; } } return false; } public boolean isEmpty() { return end == 0; } public int getSize() {return end;} public String toString() { ListIterator iter = arr.listIterator(); String ret = "["; while (iter.hasNext()) { int x=iter.next(); if (!iter.hasNext()) { ret = ret + x + "] "; } else ret = ret + x + ", "; } return ret; } }