Guest User

Untitled

a guest
Aug 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.11 KB | None | 0 0
  1. import fiji.io.*;
  2.  
  3. class NodoLista{
  4.         public Studente info;
  5.         public NodoLista next;
  6.     }
  7.  
  8.  
  9. class Studente{
  10.     private String nome;
  11.     private String cognome;
  12.     private int matricola;
  13.  
  14.     public Studente(String n, String c, int m) {
  15.         this.nome=n;
  16.         this.cognome=c;
  17.         this.matricola=m;
  18.     }
  19.  
  20.     public String getNome(){
  21.         return this.nome;
  22.     }
  23.  
  24.     public String getCognome(){
  25.         return this.cognome;
  26.     }
  27.  
  28.     public int getMatricola(){
  29.         return this.matricola;
  30.     }
  31.  
  32.     public void setNome(String n){
  33.         this.nome=n;
  34.     }
  35.  
  36.     public void setCognome(String c){
  37.         this.cognome=c;
  38.     }
  39.  
  40.     public void setMatricola(int m){
  41.         this.matricola=m;
  42.     }
  43.  
  44.     public String toString(){
  45.         return "STUDENTE \n\nNome: "+this.nome+" \nCognome: "+this.cognome+" \nMatricola: "+this.matricola+"\n";
  46.     }
  47.  
  48.     public boolean equals(Studente p){
  49.         return (this.matricola==p.matricola);
  50.     }
  51. }
  52.  
  53.  
  54. class ProveListe {
  55.     public static void main(String[] args) {
  56.         NodoLista a=new NodoLista();
  57.         a.info=new Studente("alfabeto","a",8);
  58.         a.next=new NodoLista();
  59.         a.next.info=new Studente("ab","ddda",5);
  60.         a.next.next=new NodoLista();
  61.         a.next.next.info=new Studente("ghgh","h",1);
  62.         a.next.next.next=new NodoLista();
  63.         a.next.next.next.info=new Studente("alaeto","rttt",9);
  64.         Visualizzazione(DefOrdina(a));
  65.     }
  66.  
  67.     public static void Visualizzazione(NodoLista p){
  68.         if(p==null){
  69.             System.out.println();
  70.         }
  71.         else{
  72.             System.out.println(p.info.toString());
  73.             Visualizzazione(p.next);
  74.         }
  75.     }
  76.  
  77.     public static NodoLista DefOrdina(NodoLista a){
  78.         //System.out.println("Considero la lista a:");
  79.         //Visualizzazione(a);
  80.         if(a.next!=null){
  81.             //System.out.println("Calcolo il Minimo:");
  82.             NodoLista m=Minimo(a);
  83.             //Visualizzazione(m);
  84.             //System.out.println("Lo ordino:");
  85.             NodoLista t=ordina(a,m);
  86.             //Visualizzazione(t);
  87.             a=t;
  88.             //System.out.println("Effettuo la chiamata ricorsiva assegnando a t.next=DefOrdina(t.next)");
  89.             t.next=DefOrdina(t.next);
  90.         }
  91.         //System.out.println("Ritorno a:");
  92.         //Visualizzazione(a);
  93.         return a;
  94.     }
  95.  
  96.     //restituisce il nodolista con matricola minore
  97.     public static NodoLista Minimo(NodoLista a){
  98.         NodoLista min = a;
  99.         NodoLista q=a.next;
  100.         while(q!=null){
  101.             if(min.info.getMatricola()>q.info.getMatricola()) min=q;
  102.                 q=q.next;
  103.         }
  104.         return min;
  105.     }
  106.  
  107.     //mette il nodolista minimo alla prima posizione
  108.     public static NodoLista ordina(NodoLista a, NodoLista x){
  109.         NodoLista p=a;
  110.         //elimino il nodo originale
  111.         p=elimina(p,x.info);
  112.         /* Questa operazione l'avevi messa per ultima, ma l'eliminazione non andava a buon fine poichè usavi un nuovo nodolista q
  113.          * totalmente indifferente al resto del codice, dunque l'eliminazione veniva fatta ma tenuta nell'inutilizzato nodolista q.
  114.          * Correggendo con p, però veniva eliminato anche l'elemento minimo inserito in testa, perciò prima cancello l'elemento minimo
  115.          * e solo dopo lo aggiungo in testa
  116.         */
  117.         //copio la lista da spostare
  118.         NodoLista y=new NodoLista();
  119.         y.info=x.info;
  120.         //posiziono la copia nella posizione iniziale
  121.         y.next=p; //Devi mettere p e non a, perchè a è la lista originale, p invece, tiene conto dell'eliminazione dell'elemento minimo
  122.  
  123.  
  124.         return y;
  125.     }
  126.  
  127.     public static NodoLista elimina(NodoLista p, Studente x) {
  128.         //System.out.println("Devo eliminare la matricola: "+x.getMatricola());
  129.         if (p != null){
  130.             //System.out.println("CONDIZIONE: se "+p.info.getMatricola()+" uguale a "+x.getMatricola());
  131.             if (p.info.equals(x)){
  132.                 p = p.next;
  133.             }else {
  134.                 //System.out.println("Blocco ELSE");
  135.                 NodoLista q = p;
  136.                 while (q.next!=null && !q.next.info.equals(x))
  137.                     q = q.next;
  138.                 //System.out.println("ELIMINO "+q.next.info);
  139.                 if (q.next!=null) q.next = q.next.next;
  140.             }
  141.         }
  142.         return p;
  143.     }
  144.  
  145.     /*
  146.     public static NodoLista Inserisci(NodoLista a, String s) {
  147.         NodoLista p=a;
  148.         //NodoLista r=new NodoLista();
  149.         if (p.next!=null) {
  150.             //System.out.println(p.next.info+" compareTo "+s+" ="+p.next.info.compareTo(s));
  151.             if (p.next.info.compareTo(s) < 0) {
  152.                 p=p.next;
  153.                 p=Inserisci(p,s);
  154.             }
  155.         }
  156.         //System.out.println("next: "+p.next.info+" attuale: "+p.info);
  157.         return p;
  158.     }*/
  159. }
Add Comment
Please, Sign In to add comment