Advertisement
Guest User

Koodinäidis2

a guest
Oct 9th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.86 KB | None | 0 0
  1.  
  2. public class KMB_8 {
  3.    
  4.     //Klassi väljad
  5.     private Object[] a; //käideldav hulk
  6.     private int n; //mitmest hulga a esimesest teha alamhulki
  7.     private KMB_8 gen_väike; //generaator n-1 korral
  8.     private Object[] väike; //tulemus generaatorist n-1 korral
  9.     private int olek;
  10.     //Klassi väljad
  11.    
  12.     //Olekud
  13.     static final int TEHA_VÄIKSEMATE_GENERAATOR = 0;
  14.     static final int TEHA_UUS_VÄIKE = 1;
  15.     static final int TEHA_PIKENDATUD = 2;
  16.     static final int AMMENDATUD = 3;
  17.     //Olekud
  18.    
  19.     //Konstruktor
  20.     public KMB_8(Object[] a, int n){
  21.         this.a = a;
  22.         this.n = n;
  23.         olek = TEHA_VÄIKSEMATE_GENERAATOR;
  24.     }
  25.     //Konstruktor
  26.    
  27.     public Object[] next(){
  28.         //Järjekordne alamhulk
  29.         //@return (antakse välja jrk hulga a alamhulk (massiivina)
  30.        
  31.         //Baasjuhud
  32.         if (olek == AMMENDATUD){
  33.             return null;
  34.         }
  35.         if (n == 0){
  36.             olek = AMMENDATUD;
  37.             return new Object[0]; //anda välja tühihulk
  38.         }
  39.         //Baasjuhud
  40.        
  41.         for (int i=0;i<n;i++){
  42.             switch(olek){
  43.             case TEHA_VÄIKSEMATE_GENERAATOR:
  44.                 gen_väike = new KMB_8(a,n-1);
  45.             case TEHA_UUS_VÄIKE:
  46.                 väike = gen_väike.next();
  47.                 if(väike == null){ //väiksemad (ja nende pikendused) kõik juba välja antud
  48.                     olek = AMMENDATUD;
  49.                     return null;
  50.                 }
  51.                 //potentsiaalselt veel mingi mant vahele slaidilt
  52.                 olek = TEHA_PIKENDATUD;
  53.                 return väike;
  54.             case TEHA_PIKENDATUD:
  55.                 Object[] pikendatud = new Object[väike.length+1]; //pikendatud k.....
  56.                 System.arraycopy(väike, 0, pikendatud, 0, väike.length); // kopeerida väike ==> pikendatud algusesse
  57.                 pikendatud[pikendatud.length-1] = a[n-1]; //a viimane element ==> pikendatud viimasele kohale
  58.                 olek = TEHA_UUS_VÄIKE;
  59.                 return pikendatud;
  60.             default:
  61.                 System.out.println("KMB_8:next():Olek vale:" + olek);
  62.                 System.exit(0);
  63.                
  64.             }
  65.         }
  66.     }
  67.    
  68.     public static void main(String[] args) {
  69.         MIS MA SIIA KIRJUTAN?
  70.     }
  71.  
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement