2010-03-10 3 views
0

им обучения, связанные списки в Java, но я застрял на следующийпомощь со списками?

Перед удалением Hobnobs: бурбон, песочное, Hobnobs, Oreos

После удаления Hobnobs: бурбон, песочное, Oreos

Я хотел бы создать метод удаления, который удалит промежуточный узел «Hobnobs».

ив получил это до сих пор

public class Biscuit { 

private BiscuitNode first; 
public Biscuit() 
{ 
    this.first=null; 
} 
public BiscuitNode getFirst() { 
    return first; 
} 
public void insert(BiscuitNode first) { 
    this.first = first; 
} 

public void deleteFirst() 
{ 
    this.first.setSucc(this.first); 
} 

public void delete(String BiscuitName) 
{ 

Hobnobs является "BiscuitNode secondLast=new BiscuitNode("Hobnobs", last);"

+0

Похоже, что это вопрос домашней работы. Ничего плохого в том, чтобы задавать домашние вопросы на SO, но вы должны пометить их как «домашнюю работу». В реальной жизни вы должны, как правило, использовать встроенный 'java.util.LinkedList' – MatrixFrog

ответ

1

Прогулка цепочку узлов в цикле с помощью getSucc() на текущем узле. Затем, как только вы найдете совпадающий узел, сделайте его предшественника указателем на его преемника. Например. если мы хотим удалить узел C из следующего списка:

A--->B--->C--->D 

becomes 

A--->B--->D 

Вы должны уметь это выяснить.

+0

извините, я не понимаю – user290794

+0

См. Http://stackoverflow.com/questions/10042/how-do-i-plement- а-связной список-в-Явы. –

+0

Благодарю тебя, я понял. – user290794

1

Добавить рекурсивный метод BiscuitNode, может быть назван deleteYourSuccessorIfItMatches(String pattern), который проверяет, если это преемник соответствует шаблону, и если это произойдет, преемник текущего узла должен быть установлен на преемник преемника, иначе метод вызываются рекурсивно преемника. Вызывающий метод, Biscuit.delete(String pattern) должен сделать то же самое на узле first.

Смежные вопросы