public class LLOrd
{
  public Cel Lista;
  
  public LLOrd()
    {
      Lista = null;
    }
  public void Insere(int x)
    {
      Cel    anterior = null;
      Cel       atual = Lista;
      Cel        novo = new Cel(x);
      boolean inseriu = false;
            
      while(atual != null && !inseriu){
	if(atual.leInfo() < x){
	  anterior = atual;
	  atual = atual.leProx();
	}
	else if(atual.leInfo() == x) 
	  System.out.println(x+" já está na lista");
	else{
	  // achei o lugar prá inserir
	  if( anterior == null){
	    novo.mudaProx(Lista);
	    Lista = novo;
	  }
	  else{
	    anterior.mudaProx(novo);
	    novo.mudaProx(atual);
	  }
	  inseriu = true;
	}
      }
      if (!inseriu)
	// insere no fim da lista
	if (anterior == null) // lista vazia
	  Lista = novo;
	else
	  anterior.mudaProx(novo);
    }
  public void Remove(int x)
    {
      Cel anterior  = null;
      Cel atual     = Lista;
      boolean achou = false;
      
      while (atual != null && ! achou){
	if( atual.leInfo() < x){
	  anterior = atual;
	  atual = atual.leProx();
	}
	else if( atual.leInfo() > x) 
	  System.out.println(x+" não está na lista");
	else{
	  // achei x
	  if(anterior == null)
	    // começo da lista
	    Lista = atual.leProx();
	  else
	    anterior.mudaProx(atual.leProx());
	  achou = true;
	}
      }
      if(!achou) 
	System.out.println(x+" não está na lista");
    }
  public void Imprime()
    {
      Cel elem = Lista;
      if(elem == null) 
	System.out.println("Lista Vazia");
      else{
        while( elem != null){
	  System.out.print(" "+elem.leInfo());
	  elem = elem.leProx();
	}
	System.out.println();
      }
    }
  
}
