Вызов метода SLNode <E>find () - PullRequest
       15

Вызов метода SLNode <E>find ()

0 голосов
/ 22 сентября 2011

Я работаю над заданием для школы, где предусмотрен класс SinglyLinkedList, и мы должны создать программу, которая будет вызывать этот класс для добавления, удаления, поиска и отображения элементов в списке.Я реализовал методы add, delete и display просто отлично, но я не могу понять, как вызвать метод find.Любая помощь будет отличной.

Вот метод из класса SinglyLinked, который мне нужно реализовать:

private SLNode<E> find( E target ) {
SLNode<E> cursor = head.getSuccessor();

while ( cursor != tail ) {
  if ( cursor.getElement().equals( target ) ) {
    return cursor; // success
  }
  else {
    cursor = cursor.getSuccessor();
  }
}

return null; // failure

}

Вот что у меня есть ...Я включил реализации других методов также:

public static void addPet()
{
    Scanner keyboard = new Scanner(System.in);      
    System.out.print("\nPlease enter your pet's name and what type of \n    animal it is(i.e. \"Mickey, Mouse\"): \n");
    petType = keyboard.nextLine();
    pet.add(petType, 0);
    System.out.printf("%s was added to the list.\n\n", petType);        
}

public static void displayPets()
{       
    int i;
    for(i=0; i<pet.getLength(); i++)
    {
        System.out.printf("\n%d.\t%s",i+1, pet.getElementAt(i));
    }
    System.out.print("\n\n");
}

public static void deletePet()
{
    int i;
    int j;
    int k;
    String a;
    for(i=0; i<pet.getLength(); i++)
    {
        System.out.printf("\t%d. %s\n",i+1, pet.getElementAt(i));
    }
    System.out.println();
    System.out.printf("\nPlease enter the number of the item to delete: \n");
    Scanner input = new Scanner(System.in);
    j = input.nextInt();
    System.out.printf("%s was deleted from the list.\n\n", pet.getElementAt(j-1));
    pet.remove(j-1);
}

public static void findPet()
{
    String keyword;
    Scanner keyboard = new Scanner(System.in);
    System.out.print("Please enter a search term: ");
    keyword = keyboard.nextLine();
    //.find(keyword);
}

Я уверен, что я сам себя выгоню, потому что это проще, чем я это делаю, но я действительно просто застрял.

1 Ответ

0 голосов
/ 22 сентября 2011

Ваш список, очевидно, содержит домашних животных, представленных каким-либо типом домашних животных (который выглядит как String). Так что find ожидает аналогичного типа питомца, которого вы добавили в addPet. И возвращает SLNode, содержащее найденное домашнее животное, если оно есть. Поскольку вы не опубликовали SLNode, я не могу сказать, как получить содержащийся в нем элемент, но вызов getElement() выглядит как безопасная ставка :-) Поэтому вам нужно проверить значение, возвращаемое find, для null Несс. Если это не null, вы можете, например, получить содержащийся в нем элемент и распечатать его.

Полагаю, этого должно быть достаточно для написания кода; если не понятно, пожалуйста, прокомментируйте.

...