Jump to content
clecio10

Implementação de lista em java

Recommended Posts

Olá pessoal sou novo no fórum e gostaria da ajuda de vocês na resolução de um exercício de estrutura de dados, não estou sabendo como implementar os métodos com base nas perguntas do exercício. Por favor, quem puder ajudar eu agradeço de coração!

 

Enunciado:
 
1. Implemente o método compareTo(Object o) da classe Item ;
2. Implemente a lista duplamente encadeada para a atender a interface ILista ;
3. Implemente a lista simplesmente encadeada circular para a atender a interface ILista ;
4. Implemente a lista duplamente encadeada circular para a atender a interface ILista ;
 
interface ILista {
    /**
     * Adiciona um elemento na lista
     *
     * @param dado Elemento a ser adicionado
     * @throws ListaException Erro caso não tenha mais espaço disponível.
     */
    void adicionar(Item dado) throws ListaException;

    /**
     * Remove um item da lista
     *
     * @param chave informar a chave de busca do item
     * @throws ListaException Erro caso não tenha o item informado.
     */
    void remover(Comparable chave) throws ListaException;

    /**
     * Caso a chave seja encontrada, retorna verdadeiro
     *
     * @param chave
     * @return
     */
    boolean contem(Comparable chave) throws ListaException;

    /**
     * Retorna a quantidade de elementos
     *
     * @return a quantidade de elementos
     */
    int getQtd();

    /**
     * Adiciona a outra lista no final da lista.
     *
     * @param outralista a outra lista a ser somada.
     */
    void AdicionarNoFinal(ILista outralista) throws ListaException;

    /**
     * Adiciona a outra lista no final da lista.
     *
     * @param outralista a outra lista a ser somada.
     */
    void AdicionarNoFinal(Item[] outralista) throws ListaException;

    /**
     * Adiciona a outra lista após o item chave existente na lista.
     *
     * @param outralista        a outra lista a ser somada.
     * @param chaveDoItemDoMeio elemento chave que antecederá a outra lista
     */
    void AdicionarNoMeio(Comparable chaveDoItemDoMeio, ILista outralista) throws ListaException;

    /**
     * Retorna outra lista com os elementos existentes da lista.
     *
     * @param posicaoInicial posição inicial da lista a ser copiada.
     * @param posicaoFinal   posição final da lista que deve ser copiada.
     */
    Item[] getSubLista(int posicaoInicial, int posicaoFinal) throws ListaException;

    /**
     * Retorna a quantidade de elementos que são iguais ao informado no parâmetro.
     *
     * @param item elemento de comparação.
     */
    int getQtdElementos(Item item) throws ListaException;

    /**
     * Remove os itens duplicados
     *
     * @throws ListaException
     */
    void removerDuplicados() throws ListaException;

}
public class Item implements Comparable {
    private Comparable chave;
    private Object informacaoCompleta;

    public Item() {

    }

    public Item(Comparable chave) {
        this();
        this.chave = chave;
        this.informacaoCompleta = chave;
    }

    public Item(Comparable chave, Object dado) {
        this(chave);
        this.informacaoCompleta = dado;
    }


    public Object getInformacaoCompleta() {
        return informacaoCompleta;
    }

    public void setInformacaoCompleta(Object informacaoCompleta) {
        this.informacaoCompleta = informacaoCompleta;
    }

    public Comparable getChave() {
        return chave;
    }

    public void setChave(Comparable chave) {
        this.chave = chave;
    }

    // Implementar o método compareTo
    public int compareTo(Object o) {
        return 0;
    }
}
public class ListaException extends Exception {
    public ListaException(String msg) {
        super(msg);
    }
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Lincoln Ferreira
      Eu estou tentando fazer um Jquery steps wizard mas não consigo colocar pra ele parar caso não tenha sido preenchido o formulario no segundo passo.
      http://www.jquery-steps.com/Examples
       
      if (newIndex === 2 && $("#Rua").val() == "") { return false; } $(document).ready(function() { $("#wizard").steps({ headerTag: "h2", bodyTag: "section", transitionEffect: "slideLeft", stepsOrientation: "vertical", labels: { current: "current step:", pagination: "Pagination", finish: "Finalizar", next: "Confirmar", previous: "Voltar", loading: "Carregando ..." }, onStepChanging: function(event, currentIndex, newIndex, cepError) { if (currentIndex > newIndex) { return true; } if (newIndex === 1) { return true; } if (newIndex === 2 && $("#Rua").val() == "") { return false; } } } ) }); <div id="wizard"> <h2>Verificação pedido</h2> <section> <h2><strong>Pedido:</strong></h2> <div class="lista-carrinho"></div> </section> <h2>Local de entrega</h2> <section> <div class="informações-usuario"> <form method="get" action="." id="#form-cep"> <div class="form-row"> <div class="form-group col-md-6"> <label for="cep">Cep:</label> <input name="cep" type="text" class="form-control" id="cep" placeholder="09572-660" value="" size="10" maxlength="9" required> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="rua">Rua:</label> <input name="rua" class="form-control" type="text" id="rua" placeholder="Sete de Dezembro" size="60" maxlength="" /> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="bairro">Bairro:</label> <input name="bairro" class="form-control" type="text" placeholder="Nova Gerty" id="bairro" size="40" maxlength="40" /> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="n">N°:</label> <input name="n" class="form-control" type="text" placeholder="2" id="n" size="6" maxlength="10" /> </div> </div> <div class="form-group col-md-6"> <label for="complemento">Complemento:</label> <input name="complemento" type="text" class="form-control" id="complemento" placeholder="Ao lado do extra" value="" size="10" maxlength="9" requerid> </div> <div class="form-row"> <div class="form-group col-md-11"> <label for="cidade">Cidade:</label> <input name="cidade" class="form-control" type="text" placeholder="São Bernardo do Carpo" id="cidade" size="40" maxlength="40" /> </div> </div> </div> </form> </div> </section> <h2>Forma de pagamento</h2> <section> <div class="row d-flex justify-content-center col-sm col-md col-lg m-5 "> <h2>Informe sua forma de pagamento :</h2> </div> <div class="row d-flex justify-content-center col-sm col-md col-lg m-5 "> <div class="col-2"> <li class="list-inline-item"> <div class="pure-radiobutton"> <input id="Dinheiro" name="dinheiro" type="radio" class="radio"> <label for="Dinheiro">Dinheiro</label> </div> </li> </div> <div class="row"> </div> <div class="col-2"> <li class="list-inline-item"> <div class="pure-radiobutton"> <input id="Cartao" name="cartao" type="radio" class="radio"> <label for="Cartao">Cartão</label> </div> </li> </div> </div> </section> </div>
    • By marcelocardoso
      Fala galera...
      Depois de tanto sofrer tentando e pesquisando na internet, não consegui resolver...
      A nível de conhecimento, segue código para:::

      1) Ao clicar, pegar o id do botão, em seguida abrir com slidetoggle e jogar no TOP tipo ancora.
      2) ou seja, expandir a slidetoggle, mas POSICIONAR no id da DIV, SECTION ou etc...

      CODE:
       
      $(function () { // $("#btn-maps").on("click", function () { // $('html, body').animate({ // scrollTop: $("#maps").slideToggle('slow').offset().top - 135 // }, 1200, 'linear'); // }); $("#btn-maps").click( function (event) { event.preventDefault(); if ($("#maps").is(":visible")) { $("#maps").slideUp(600).offset().top; } else { $("#maps").slideDown(600).offset().bottom; } } ); }); Este código, funciona perfeitamente, adaptado de vários códigos buscados na internet, porém, não consigo com nenhum dos dois, posicionar ao CLICK o SLIDETOGGLE ao expandir deixar examente no inicio do ID;

      Dicas, Sugestões como fazer, realizar, agradeço.
      Obrigado.

       
    • By Guss
      var carro = {
      cor = "azul",
      modelo = "fusca",
      marca = "Volwagen,
      kms = 10000,
      combustivel = "gasolina"
      }
       
    • By _FelipeOlvr
      Oi pessoal, blz?
       
      Bom, passei quase a tarde toda pra fazer o seguinte:
       
      Imagina que o body tem scroll Y.
      agora imagina que no meio do body tem um elemento que tem scroll no sentido X ( <--------> ).
       
      Minha dúvida é a seguinte: Como eu faço pra que, quando eu colocar o mouse em cima desse elemento que sofre scroll no sentido X, o scroll passe a acontecer nele, e não mais no body.
       
      ( Eu sei que se segurar o SHIFT e girar a rodinha do mouse, o scroll acontece somente nele. Mas eu queria tentar isso, pra dar um trabalho a menos pro usuário )
       
      Fiz um layout básico pra simular o layout em que quero fazer isso. Segue:
       
      <!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title> JS | Scroll </title> <style> body { min-height: 200vh ; display: flex ; flex-direction: column ; justify-content: center ; } .container-scroll-x { background-color: rgb(219, 237, 240) ; padding: 50px ; } .content { background-color: rgb(127, 189, 207) ; overflow-x: auto ; white-space: nowrap ; padding: 30px ; } </style> </head> <body> <div class="container-scroll-x"> <div class="content"> Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nam laborum, labore quam voluptate neque quod possimus ab nemo odio hic porro ut, officiis qui fuga cumque explicabo, placeat in temporibus. </div> </div> </body> </html> Desde já agradeço a ajuda.
       
       
    • By eduardaarosaa
      Estou tentando fazer um validador de idade, mas meu onclick não está retornando como o esperado. O caminho para o aquivo externo está correto, já testei com um alert.
       
      Meu HTML:
       
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Verificador de Hora</title>
          <link rel="stylesheet" type="text/css" href="style/style.css">
      </head>
      <body>
          <header>
              <h1>Verificador de Idade</h1>
          </header>
          <section>
              <div>
                  <p>Ano de nascimento:
                      <input type="number" name="txtnumber" id="txtano">
                  </p>
                  <p>
                      Sexo:
                      <input type="radio" name="radiosex" id="masc" checked>
                      <label for="masc">Masculino</label>
                      <input type="radio" name="radiosex" id="fem" >
                      <label for="fem">Feminino</label>
                  </p>
                  <p>
                      <input type="button" value="Verificar" onclick="verificar()">
                  </p>
                 
              </div>
              <div id="res">
                  Preencha os campos e veja o resultado.
              </div>
          </section>
          <footer>
              <p>&copy; Eduarda Rosa</p>
          </footer>
          <script src="script/script.js"></script>
      </body>
      </html>
       
      e o JS: 
       
      function verificar(){
          var data = new Date();
          var ano = data.getFullYear();
          var fano = document.getElementById('txtano');
          var res = document.querySelector('div#res');
          if(fano.Value.length == 0 || fano.value > ano){
              window.alert("Error, verifique os dados e tente novamente!");
          }else{
              window.alert("Ok");
          }
      }
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.