Ho un programma dove devo implementare un albero, ho creato la classe Node<E>, e Albero<E>.
Solo che quando nel main provo a costruire l'oggetto albero non mi trova il costruttore, temo dipenda dai tipi, le classi sono queste:

Node
codice:
public class Node<E>
{
	private E label;
	private Node<E> left;
	private Node<E> right;
	private Node<E> parent;
	
	public Node(E label)
	{
		this.label=label;
		left=null;
		right=null;
		parent=null;
	}
	
	public void setParent(Node<E> parent){this.parent=parent;}
	public Node<E> getParent(){return parent;}
	public void SetLabel(E label){this.label=label;}
	public E getLabel(){return label;}
	public void setLeft(Node<E> left){this.left=left;}
	public void setRight(Node<E> right){this.right=right;}
	public Node<E> getLeft(){return left;}
	public Node<E> getRight(){return right;}
	public boolean hasLeft(){return left!=null;}
	public boolean hasRight(){return right!=null;}
				
}
Albero
codice:
interface Tree<E extends Comparable>
{       //restituisce la radidce dell'albero
	public Node<E> getRoot();
	//effettua una visita postorder nell'albero
	public E[] postorder();
	//restituisce il numero dei nodi
	public int nodes();
	//effettua una visita preorder nell'albero
	//public E[] preorder();
	//stampa i nodi dell'albero secondo una delle due visite a piacere
	public String toString();
}

public class Albero<E extends Comparable> implements Tree<E>
{
	private Node<E> root;
	private int nodes;
	
	public Albero(int nodes)
	{
		this.nodes=nodes;
		root=null;
		nodes=0;
	}
	
	public int nodes(){return nodes;}
	public void setRoot(Node<E> root){this.root=root;}
	public Node<E> getRoot(){return root;}
	public void addNode(Node<E> nuovo)
	{
		if(nodes==0) setRoot(nuovo);
		
		else{
			Node<E> tmp=getRoot();
			boolean inserito=false;
			
			while(!inserito)
			{
				if(tmp.getLabel().compareTo(nuovo.getLabel())>0)
				{
					if(!(tmp.hasLeft())){
						tmp.setLeft(nuovo);
						nuovo.setParent(tmp);
						inserito=true;
					}
					else tmp=tmp.getLeft();
				}
				else if(tmp.getLabel().compareTo(nuovo.getLabel())<0)
				{
					if(!(tmp.hasRight())){
						tmp.setRight(nuovo);
						nuovo.setParent(tmp);
						inserito=true;
					}
					else tmp=tmp.getRight();
				}
			}
			}
		nodes++;
	}
	
	public E[] postorder()
	{
		int index=0;
		E[] array=(E[]) new Object[nodes];
		Stack<E> stack=new Stack(nodes);
		Node<E> tmp=getRoot();
		Node<E> q=getRoot();
		
		while(tmp!=null){
			while(tmp!=null){
				stack.push((E)tmp);
				if(tmp.hasRight()) stack.push((E)tmp.getRight());
				tmp=tmp.getLeft();
			}
			do{
				tmp=(Node<E>)stack.pop();
				if(!(tmp.hasLeft() && tmp.hasRight()) || !(tmp.hasRight()) || tmp.getRight()==q)
				{
					array[index++]=(E)tmp;
					q=tmp;
					tmp=null;
				}
			    }
			    
			while(tmp==null && !(stack.isEmpty()));
		}
		
	    return array;
	}
	
	public String toString()
	{
		String toReturn="";
		E[] array=postorder();
		for(int i=0; i<array.length; i++)
		toReturn+=((Node<E>)array[i]).getLabel()+", ";
		
		return toReturn;
	}
		
}
E il main:

codice:
import java.util.*;
import java.io.*;
public class Main
{
	public static void main(String[]args)
	{
		Scanner s=null;
		PrintWriter out=null;
		
		try{
			
			s=new Scanner(new File("input.txt"));
			out=new PrintWriter("output.txt");
			
			String numero=s.next();
			Albero albero=new Albero(Integer.parseInt(numero));
			
			while(s.hasNext())
			{
				String next=s.next();
				if(!(next.equals(",")))
				{
					Node<Integer> nodo=new Node((Integer.parseInt(next)));
					albero.addNode(nodo);
				}
			}
			
			out.print(albero.toString());
		     }
		     
		     catch(IOException e1)
		     {
			     System.out.println("Error...I/O");
		     }
		     
		     finally{
				try{
					out.close();
				     }
				     
				catch(IOException e2)
				     {
					     System.out.println("Error...I/O");
				     }
			     }
	}
}
L'errore č:
codice:
Main.java:16: cannot find symbol
symbol  : constructor Albero(int)
location: class Albero
			Albero albero=new Albero(Integer.parseInt(numero));
			              ^
Non capisco perchč non lo trovi...puņ essere perchč non specifico il tipo al momento della dichiarazione?
Ho provato anche a scrivere:

codice:
Albero<Node<Integer>> albero=new Albero(..)
Ma non funziona nemmeno cosģ....cosa dovrei fare secondo voi?