связанный список вывести каждый n-й целочисленный метод - PullRequest
0 голосов
/ 20 марта 2012

Мне нужно написать метод для класса связанного списка, который:

Печать содержимого каждого "n-го" узла в списке. Получите «n» от пользователя, убедитесь, что это больше 0.

Как бы я поступил так?

 public void nthNode (int n) {
     if (n <= 0) {
        System.out.println("error");
     } else {
       //bla
     }
 } 

Ответы [ 4 ]

1 голос
/ 20 марта 2012
 public void nthNode (int n) {
     if (n <= 0) {
        System.out.println("error");
     } else {
         for (int i = 0; i < size(); i += n) {
             //LinkedList#get(i);
         }
     }
 }
0 голосов
/ 24 марта 2012

Предположим, у вас есть какой-то класс узлов:

public void nthNode( int n ){
     if( n <= 0 ){
            System.out.println( "error" );
      } else {
         Node e = new Node();
         e = head;

         int count = 0;

         while( e != null ){

              if( count == n ){
                  //do stuff
                  break;
              }

              e = e.next;
              cout++;
     }

}

Извините, что-то неаккуратное, но это суть.

0 голосов
/ 20 марта 2012

Ваш основной мотив - напечатать данные узлов, когда счетчик будет кратным n.

так что вместо проверки мода на данных, вам нужно сделать это на счетчике и проверить мод с помощью n.

Перебор списка ссылок (используя, скажем, указатель curr) с использованием цикла while. Проверьте состояние curr.next! = Null. инициализировать счетчик до 0. Во время итерации считать количество узлов, пройденных до сих пор. Если (count == n), распечатайте данные узла и инициализируйте счетчик 0. 0. 1005 *

0 голосов
/ 20 марта 2012

Перебирать каждый элемент в списке.Если индекс текущего элемента делится на n равномерно, выведите элемент.Вы можете проверить четность деления, используя оператор модуля (% в Java)

...