Pages: [1]   Go Down
Print
Author Topic: Appunti professore  (Read 1568 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Angelo
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 274



« on: 15-09-2010, 15:08:12 »

Ciao ragazzi, un collega mi ha detto che il professore, durante l'ultima esercitazione ha lasciato degli appunti.
Dove è possibile reperirli?

 
Logged

..elimindo il ponte pedonale di andrea doria..hanno eliminato una parte di me!..
ShiShi
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 256



« Reply #1 on: 16-09-2010, 14:40:32 »

l'ultima quale intendi?Quella dopo l'appello d'esame,a lezioni finite?
Logged
Angelo
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 274



« Reply #2 on: 16-09-2010, 17:55:38 »

si si
Logged

..elimindo il ponte pedonale di andrea doria..hanno eliminato una parte di me!..
ShiShi
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 256



« Reply #3 on: 16-09-2010, 21:38:17 »

Non sono proprio appunti, ma la risoluzione dei compiti d'esame. Io purtroppo sono arrivata in ritardo e sono riuscita a scriverne uno solo che compilando non va..l'ho sistemato e cambiato un pò e funziona correttamente, se vuoi ti posso dare questo Smiley
Logged
kaesar
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 384


volli, e sempre volli, e fortissimamente volli


« Reply #4 on: 16-09-2010, 23:39:03 »

prova con gli appunti di algoritmi  cry
Logged

"Se introduci un po' di anarchia... se stravolgi l'ordine prestabilito... tutto diventa improvvisamente caos. Io sono un agente del caos. E sai qual è il bello del caos? È equo!"
Angelo
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 274



« Reply #5 on: 17-09-2010, 06:56:07 »

Non sono proprio appunti, ma la risoluzione dei compiti d'esame. Io purtroppo sono arrivata in ritardo e sono riuscita a scriverne uno solo che compilando non va..l'ho sistemato e cambiato un pò e funziona correttamente, se vuoi ti posso dare questo Smiley

è già qualcosa 
Logged

..elimindo il ponte pedonale di andrea doria..hanno eliminato una parte di me!..
ShiShi
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 256



« Reply #6 on: 18-09-2010, 08:52:15 »

Scusa il ritardo, eccolo! Il compito è A di giorno 27 Luglio 2010

Code:
import java.io.*;
import java.util.*;

public class EsameUltimo {
   
    public static class BSTNode<E> {
        private E element;
        private BSTNode<E> parent;
        private BSTNode<E>left;
        private BSTNode<E> right;
        public BSTNode (E element,BSTNode<E> parent) {
            this.element=element;
            this.parent=parent;
        }
        public E getElement() {
            return element;
        }
        public BSTNode<E> getLeft() {
            return left;
        }
        public void setLeft(BSTNode<E> x) {
            left=x;
        }
        public BSTNode<E> getRight() {
            return right;
        }   
        public void setRight(BSTNode<E>x) {
            right=x;
        }
        public BSTNode<E> getParent() {
            return parent;
        }
        public void setParent(BSTNode<E>x) {
            parent=x;
        }
    }
 
    public static class BST<E extends Comparable>{
        private int size=0;
        private BSTNode<E> root;       
        public int size() {
            return size;
        }
        public E deleteMax() {
            BSTNode<E> max= maximum();
            if(max.getLeft()!=null && max!=root) {
                max.getLeft().setParent(max.getParent());//il figlio sx del maggiore diventa figlio del padre del maggiore
                size--;
            }
            else if (max.getLeft()==null && max!=root) {
                max.getParent().setRight(null);//il padre del maggiore diventa padre del figlio sx del maggiore
            }
            else if(max.getLeft()!=null && max==root){
               root=max.getLeft();
            }
            else if(max.getLeft()==null & max==root) {
                root=null;
            }
            size--;
            return max.getElement(); //ritorna il maggiore
        }               
        public BSTNode<E> maximum() {
            BSTNode<E>tmp = root;
            if(tmp==null) return null;
                if (size==1)
                    return tmp;
                while(tmp.getRight()!=null) {
                    tmp=tmp.getRight();     
                }
                return tmp;
        }
      /*  public int compareTo(BST<E> tree) {
            return maximum().getElement().compareTo(tree.maximum().getElement());
        }        */
        public void insert(E x) {
            BSTNode<E> node= new BSTNode(x,null);
            if(root==null) {
                root=node;
                size++;
            }
            else {
                recInsert(root,node);
                size++;
            }
        }
         public void recInsert(BSTNode<E>n, BSTNode<E>node) {
            if(n.getElement().compareTo(node.getElement())>0) {
                if(n.getLeft()!=null)
                    recInsert(n.getLeft(), node);
                else
                    n.setLeft(new BSTNode(node.getElement(),n));
            }       
            else {
                if(n.getRight()!=null)
                    recInsert(n.getRight(), node);
                else
                    n.setRight(new BSTNode(node.getElement(),n));
            }
        }   
        public void stampaGrafica() {
          BSTNode p = root; 
          if(p!=null)
                stampaGrafica(p,0);
            else
            System.out.println("albero vuoto");
          }

        protected void stampaGrafica(BSTNode subroot, int livelloAttuale) {
            if(subroot == null)
                    return;
            stampaGrafica(subroot.getRight(),livelloAttuale+1);
            for(int liv = livelloAttuale ; liv > 0 ; liv--)
                System.out.print("\t");
            System.out.println(subroot.getElement());
            stampaGrafica(subroot.getLeft(),livelloAttuale+1);
        }       
}
   
    public interface BSTSet270710<E extends Comparable> extends Iterable<BST<E>>{
        public int items (); // ritorna il numero di items (di tipo E) dell'insieme
        public int size (); // ritorna il numero di elementi (di tipo BST<E>) dell'insieme
        public E getMax (int i); // ritorna il rappresentante dell'albero di posizione i
        public BST<E> getBST (int i); // ritorna l'albero di posizione i
        public void add (BST<E> tree); // aggiunge un nuovo albero all'insieme
        public void addItem (E item, int i); // aggiunge un nuovo item all'albero di posizione i
        public BST<E> search(E item); // ritorna il primo albero dell'insieme contenente l'item E
        public Iterator<BST<E>> iterator(); // ritorna un iteratore di tutti gli alberi dell'insieme
        public E extractMax(); // elimina e ritorna l'item più grande dell'insieme
    }
   
    public static class BSTSet <E extends Comparable> implements BSTSet270710<E> {
        private int size;
        private BST<E>[]set;
        public BSTSet() {
            size=0;
            set= (BST<E>[]) new BST[100];
        }   
        public int items () { // ritorna il numero di items (di tipo E) dell'insieme
            int items=0;
            for(int i=0; i<size; i++) {
                items+= set[i].size();
            }
            return items;
        }
        public E getMax (int i) {// ritorna il rappresentante dell'albero di posizione i
            return set[i].maximum().getElement();
        }
         public void add (BST<E> tree) {// aggiunge un nuovo albero all'insieme           
             set[size]=tree;             
             size++;
        }
       
        public void addItem (E item, int i) {// aggiunge un nuovo item all'albero di posizione i
                set[i].insert(item);
        }
       
        public BST<E> search(E item) {// ritorna il primo albero dell'insieme contenente l'item E
            return null;
        }
       
        public E extractMax() {// elimina e ritorna l'item più grande dell'insieme
            if(size==0)  return null;
                E value= set[size-1].deleteMax();
            if(set[size-1].size()==0)
                size--;
            else {
                size--;
                add(set[size]);
            }
            return value;
        }
       
        public BST<E> getBST (int i) {// ritorna l'albero di posizione i
            return set[i];
        }
       
         public int size () {// ritorna il numero di elementi (di tipo BST<E>) dell'insieme
            return size;
        }
       
        public Iterator<BST<E>> iterator() {// ritorna un iteratore di tutti gli alberi dell'insieme
            return null;
        }

        public void ordina() {
            BST tmp;
            for(int j=0; j<size(); j++) {
                for(int i=j; i<size(); i++) {
                    if (getMax(j).compareTo(getMax(i))>0) {
                        tmp=set[j];
                        set[j]=set[i];
                        set[i]=tmp;
                    }
                }
            }
        }                   
    }       

    public static void main (String[]args)throws IOException {
        Scanner in= new Scanner(new File("input.txt"));
        BufferedWriter out= new BufferedWriter(new FileWriter("output.txt"));
        String s="";
        int cont=0;
        boolean test=false;
        BSTSet<Integer> collezione=new BSTSet();
        while(in.hasNext()) {
              collezione.add(new BST());
            while(in.hasNextInt()) {                 
                Integer item= in.nextInt(); //prende i vari token               
                collezione.addItem(item,cont);
            }       
             cont++;
            in.nextLine(); //va al rigo successivo           
        }
        collezione.ordina();
        for(int j=0;j<=4; j++) {
            collezione.extractMax();
            collezione.ordina();
        }
        out.write(collezione.items()+" "+collezione.size());
        out.newLine();
        out.write(""+collezione.extractMax());     
        in.close();
        out.close();
    }
}

manca l'iterator e il search che avrò dimenticato di fare. Per il resto è ok 
Logged
Pages: [1]   Go Up
Print
Jump to: