Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Lista {
- private int nElementos;
- private No cabeca;
- private class No {
- No( Carta e ) {
- item = e; // o item passa a ser o elemento
- prox = null; // o nó é inicializado com
- // prox a null (não há próximo)
- }
- No prox;
- Carta item;
- }
- public void inserirCabeca( Carta e ){
- No novoNo = new No( e );
- novoNo.prox = cabeca;
- cabeca = novoNo;
- nElementos++;
- }
- public void inserirCauda( Carta e ){
- No novoNo = new No( e );
- if( cabeca == null ) {
- cabeca = novoNo;
- nElementos++;
- return;
- }
- No ultimo = cabeca;
- while( ultimo.prox != null )
- ultimo = ultimo.prox;
- ultimo.prox = novoNo;
- nElementos++;
- }
- public void inserirOrdem( Carta e ) {
- No novoNo = new No( e );
- No actual = cabeca;
- No anterior = null;
- // procurar o local onde inserir
- while( actual != null && actual.item.compareTo( e ) < 0 ) {
- anterior = actual;
- actual = actual.prox;
- }
- novoNo.prox = actual;
- if( anterior == null )
- cabeca = novoNo;
- else
- anterior.prox = novoNo;
- nElementos++;
- }
- public void retirar( int idx ){
- if( !eIndiceValido( idx ) )
- throw new ArrayIndexOutOfBoundsException( idx );
- No actual = cabeca;
- No anterior = null;
- int pos = 0;
- while( actual != null && pos < idx ) {
- anterior = actual;
- actual = actual.prox;
- pos++;
- }
- if( anterior != null )
- anterior.prox = actual.prox;
- else
- cabeca = actual.prox;
- nElementos--;
- }
- private boolean eIndiceValido(int idx) {
- return idx < nElementos && idx >= 0;
- }
- public String toString(){
- String output = "";
- No actual = cabeca;
- do{
- output += actual.item.toString()+"\n";
- actual = actual.prox;
- }while(actual != null);
- return output;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement