Pages: [1]   Go Down
Print
Author Topic: Lista sottostante  (Read 687 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
vincenzo86
Forumista
***
Offline Offline

Gender: Male
Posts: 505



« on: 16-06-2010, 11:39:45 »

Salve ragazzi,
leggendo le prove d'esame, ho provato a fare la seguente:
Quote
La lista sottostante
Si realizzi l'implementazione della seguente interfaccia rappresentante un albero binario di
ricerca con l'aggiunta di una lista sottostante. In particolare un albero con una lista
sottostante è un albero i cui nodi sono inseriti in una lista singolarmente linkata in base
all'ordine previsto da una visita inorder. In altre parole i nodi appartengono
contemporaneamente a due strutture dati: una struttura “ albero binario di ricerca” , ed una
struttura “ lista linkata ordinata” .
Gli elementi all'interno di ogni singolo nodo sono dei valori interi.
I nodi dell'albero sono oggetti di tipo LTNode (se ne fornisca l'implementazione)
Tempo di risoluzione: 2 ore
Interfaccia ListBinaryTree
public interface ListBinaryTree {
public int size ();
// ritorna il numero di nodi contenuti nell'albero
public LTNode root () throws EmptyTreeException;
// ritorna la radice dell'albero
public LTNode first () throws EmptyTreeException;
// ritorna l'elemento più piccolo dell'albero
public LTNode last () throws EmptyTreeException;
// ritorna l'elemento più grande dell'albero
public LTNode left (LTNode x) throws InvalidArgumentException;
// ritorna il figlio sinistro del nodo dell'albero x
public LTNode right (LTNode x) throws InvalidArgumentException;
// ritorna il figlio destro del nodo dell'albero x
public LTNode parent (LTNode x) throws InvalidArgumentException;
// ritorna il padre del nodo dell'albero x
public LTNode next (LTNode x) throws InvalidArgumentException;
// ritorna il successivo nodo di x rispetto ad un ordinamento
public LTNode prev (LTNode x) throws InvalidArgumentException;
// ritorna il precedente nodo di x rispetto ad un ordinamento
public void insert (int e);
// inserisce nell'albero un nuovo nodo con valore e
public int position (LTNode x) throws InvalidArgumentException;
// ritorna la posizione di x rispetto ad un ordinamento
public LTNode atPosition (int pos);
// ritorna il nodo di posizione pos rispetto ad un ordinamento
public LTNode delete (int e);
// cancella un nodo contenente il valore e. Restituisce il nodo
}
Qualcuno ha idea di come farlo? Soprattutto quando il testo riporta:
Quote
i nodi appartengono
contemporaneamente a due strutture dati: una struttura “ albero binario di ricerca” , ed una
struttura “ lista linkata ordinata” .
Altra cosa: l'ordinamento va fatto all'interno dell'albero o della lista? Tipo
Code:
public void insert(LTNode b)
{
    LinkedList l=new LinkedList();
    l.addOrdered(b);
}
Grazie dei suggerimenti.
Logged
dani89
Apprendista Forumista
**
Offline Offline

Posts: 254



« Reply #1 on: 07-07-2010, 14:14:21 »

mi aggiungo alla richiesta di chiarimenti.
non mi è chiaro se si devono creare lista e albero oppure creare solo una struttura dati unica che li unisca....
Logged
Pages: [1]   Go Up
Print
Jump to: