Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Dúvida LISTAS SIMPLESMENTE ENCADEADAS

$
0
0

@guitedesco123 escreveu:

Boa noite pessoal, preciso fazer as seguintes funções só que estou batendo cabeça aqui, gostaria de uma luz.
Crie um novo método para a classe List (listas simplesmente encadeadas) que troque o conteúdo do terceiro elemento da lista com o conteúdo do quarto elemento, caso a lista possua pelo menos 4 elementos. Se os elementos forem trocados, o método deve retornar true, caso contrário, retornar false.
2. Crie um novo método para a classe List (listas simplesmente encadeadas) que remova primeiro elemento ímpar (valor da chave) da lista, caso exista. Se o elemento for removido o método deve retornar

Segue a classe List.

// class List definition
public class List {
   private Node firstNode;
   private Node lastNode;
   private String name;  // string like "list" used in printing

   // construct empty List with "list" as the name
   public List() { 
      this( "list" ); 
   }  

   // construct an empty List with a name
   public List( String listName ) {
      name = listName;
      firstNode = lastNode = null;
   }
   
  public Node getFirst(){
       return firstNode;
    }
   
   public Node getLast(){
	   return lastNode;
   }

   // insert Object at front of List
   public  void insertAtFront( Object insertItem ) {
      if ( isEmpty() ) // firstNode and lastNode refer to same object
         firstNode = lastNode = new Node( insertItem );

      else // firstNode refers to new node
         firstNode = new Node( insertItem, firstNode );
   }

   // insert Object at end of List
   public  void insertAtBack( Object insertItem ) {
      if ( isEmpty() ) // firstNode and lastNode refer to same Object
         firstNode = lastNode = new Node( insertItem );

      else {// lastNode's nextNode refers to new node
         lastNode.setNext (new Node( insertItem ));
         lastNode = lastNode.getNext();
      }
   }

   // remove first node from List
   public  Object removeFromFront() throws EmptyListException {
      if ( isEmpty() ) // throw exception if List is empty
         throw new EmptyListException( name );

      Object removedItem = firstNode.getData(); // retrieve data being removed

      // update references firstNode and lastNode 
      if ( firstNode == lastNode )
         firstNode = lastNode = null;
      else
         firstNode = firstNode.getNext();

      return removedItem; // return removed node data

   } // end method removeFromFront

   // remove last node from List
   public  Object removeFromBack() throws EmptyListException {
      if ( isEmpty() ) // throw exception if List is empty
         throw new EmptyListException( name );

      Object removedItem = lastNode.getData(); // retrieve data being removed

      // update references firstNode and lastNode
      if ( firstNode == lastNode )
         firstNode = lastNode = null;

      else { // locate new last node
         Node current = firstNode;

         // loop while current node does not refer to lastNode
         while ( current.getNext() != lastNode )
            current = current.getNext();
   
         lastNode = current; // current is new lastNode
         current.setNext(null);
      }

      return removedItem; // return removed node data

   } // end method removeFromBack

   // determine whether list is empty
   public boolean isEmpty() { 
      return firstNode == null; // return true if List is empty
   }

   // output List contents
   public  void print() {
      if ( isEmpty() ) {
         System.out.println( "Empty " + name );
         return;
      }

      System.out.print( "The " + name + " is: " );
      Node current = firstNode;

      // while not at end of list, output current node's data
      while ( current != null ) {
         System.out.print( current.getData().toString() + " " );
         current = current.getNext();
      }

      System.out.println( "\n" );
   }
   
  
} // end class List

Desde já obrigado.

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093