Ajuda com árvore binária?

Pessoal, seguinte, tenho um programa pra fazer aqui que é inserção e a “manutenção” em uma árvore binária, inserção de dados.

até ai tudo bem, implementei as funções básicas e a árovre está sendo montada corretamente, só que eu tenho um a mais nessa história. preciso guardar além do básico no Nó de cada árvore(dado, direita e esquerda), preciso guardar tbm um detalhe que é a quantidade de casos desse determinado dado, ou seja, ao inserir e remover, eu tenho que alterar a quantidade desse dado. oq eu deveria fazer? criar no nó mais um atributo quantidade tudo bem, só que teria que alterar tbm os métodos de inserção e remoção da árvore certo?

segue ai o método de inserção, qualquer ideia é bem vinda…


public boolean inserir(int x) {
		root = inserir(x, root);
		return true;
	}

	private No inserir(int x, No t) {
		if (t == null)
			t = new No(x, null, null);
		else if (x < t.info)
			t.esquerda = inserir(x, t.esquerda);
		else if (x > t.info)
			t.direita = inserir(x, t.direita);
		return t;
	}

Acho que entendi o que vc quer.
Seria pra vc saber quantos sub-nós existem?
Se for isso, vc pode fazer assim na sua classe no:

// coloca a nova variavel que vai armazenar a quantidade de nos.
int quantidade = 0; 

public boolean inserir(int x) {
		quantidade++; // aqui, para o nó raiz
		root = inserir(x, root);
		return true;
	}

	private No inserir(int x, No t) {
		if (t == null){
			t = new No(x, null, null);
			t.quantidade++;// talvez vc não precise desse. Não vi seu contrutor. }   
		else if (x &lt; t.info){
			t.esquerda = inserir(x, t.esquerda);
			t.quantidade++;// aqui, para o o sub-nó }
		else if (x &gt; t.info) {
			t.direita = inserir(x, t.direita);
			t.quantidade++;// aqui, para o o sub-nó }
		return t;
	}

	public int getQuantidade() { 
		return quantidade ;
	}

no outro método, para excluir, é só fazer o inverso:

t.quantidade--

Esse é o caminho das pedras.
Árvore B não é o mesmo que árvore binária. Me deram a dica aqui:

Espero que ajuda. Sucesso cara.