Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2013, 23:03   #1
BroBoa
 
Регистрация: 30.01.2010
Сообщений: 3
По умолчанию Linked List. Не могу найти ошибку в коде:(

Доброго времени суток! У меня возникла проблема. Уже почти сутки пытаюсь найти ошибку в своем коде. Ошибка связана с методом find1 он почему то не может найти строку. Если ввести в поиск первую строчку(последнюю введенную) в листе, то он находит. Но если любу. другую, то он без перерыва включает marker.getNext(); и уже не видет одинаковое ли id с введеным или нет. Может кто-нибудь сможет помочь? А то я уже все перерыл Заранее огромное спасибо!


Цитата:

public class ListNode
{
// instance variables
private String student;
private int mark;
public ListNode next;

public ListNode(String student, int mark)
{
// initialise instance variables
this.student = student;
this.mark = mark;
this.next = null;
}


public ListNode getNext()
{
return next;
}

public String getStudent()
{
return student;
}

public int getMark()
{
return mark;
}


public void setNext(ListNode next)
{
this.next = next;
}


public String formatInfo()
{
String info;

info = "Student " + student + " got " + mark + "%";

return info;
}

public void printListNode()
{
System.out.println("Student " + student + ", " + mark + "% ");
}
}


public class List
{
public ListNode head;

public List()
{

head = null;
}


public ListNode getHead()
{
return head;
}


public void setHead(ListNode newHead)
{
head = newHead;
}


public void addToList(String student, int mark)
{
ListNode marker;
ListNode newOne;

newOne = new ListNode(student, mark);
newOne.setNext(head);

head = newOne;

}

public void find1(String oneWanted)
{
// System.out.println("add students name you want to find");
ListNode marker=head;
ListNode foundNode=null;
System.out.println("test1");
while((marker!=null)&&(foundNode==n ull))
{
System.out.println("test2");
//oneWanted.equals(marker.getStudent( ));
if (oneWanted.equals(marker.getStudent ()))
{
System.out.println("test3");
System.out.println("Student is found");
foundNode=marker;
System.out.println();

}
else if (!oneWanted.equals(marker.getStuden t()))
{
System.out.println("test4");
marker.getNext();

}
}
}

public ListNode delete() {
ListNode temp = head;
head = head.next;
return temp;
}

public void printOne()
{
ListNode currentLink = head;
System.out.print("ListNode: ");

currentLink.printListNode();

System.out.println("");
}

public void printList()
{
ListNode currentLink = head;
System.out.print("ListNode: ");
while(currentLink != null)
{
currentLink.printListNode();
currentLink = currentLink.next;
}
System.out.println("");
}
}

public class Tester
{

// Need a variable of type List
public List myList;
public String student;
public int mark;
public ListNode findOut;

public Tester()
{
myList = new List();

}

public void print()
{
myList.printList();
}

public void search()
{
System.out.println("add students name you want to find");
String oneWanted=Genio.getString();
myList.find1(oneWanted);
System.out.println("testing");
}

public void menu()
{
int x;

System.out.println("Adding students. If you want to stop adding, press stop.");
System.out.println("Please insert student id: ");
student = Genio.getString();
do{
System.out.println("Please insert student mark: ");
mark = Genio.getInteger();

myList.addToList(student, mark);
System.out.println("Student added.");

System.out.println("Please insert student id: ");
student = Genio.getString();
}while(!student.equals ("0"));

myList.printList();

System.out.println("You can choose what to do next. If you want to add students, press 1.");
x = Genio.getInteger();

if (x==1)
{
addInfo();
myList.printList();
}

if (x==2)
{
search();
myList.printOne();

}
}
}
BroBoa вне форума Ответить с цитированием
Старый 31.01.2013, 22:23   #2
DmitriB
Пользователь
 
Регистрация: 31.01.2013
Сообщений: 12
По умолчанию

Проблема в том, что вы-то метод вызываете, но его значение не присваиваете. marker.getNext() - возвращает адрес следующего звена, его надо присвоить к маркеру: marker = marker.getNext();
DmitriB вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку в коде afirat Общие вопросы Delphi 7 28.12.2012 21:13
Не могу найти ошибку в коде sashmedv Паскаль, Turbo Pascal, PascalABC.NET 2 25.03.2012 08:31
Легкая задача в C++, не могу найти ошибку в коде. Aaaaaa111 Помощь студентам 3 20.02.2012 14:07
не могу найти ошибку в коде pavelstraut Общие вопросы C/C++ 5 24.07.2009 23:20
Не могу найти ошибку в коде! Natasha666 Помощь студентам 1 20.05.2009 09:27