2015-09-05 5 views
4

Как мне перейти к обновлению до нового головного узла без использования следующего?Обновление следующей главы LIST ADT, без использования итератора

private E head; 
private someList<E> tail; 

public E removeHead(){ 
     this.tail = this.tail.getTail(); 
     return this.head; 
    } 
+0

Кто-нибудь: D? Или даже точка в документации была бы потрясающей. – Josh123

ответ

1

Я думаю, что это то, что вы хотите?

public E removeHead(){ 
    E oldhead = this.getHead(); // keep old head, so we can return it 
    this.head = this.getTail().getHead(); // new head: comes out of old tail 
    this.tail = this.getTail().getTail(); // new tail: remainder of old tail 
    return oldhead; 
} 

public getHead(){ return head;} 

public getTail(){ return tail;} 

Я полагаю, вы реализовали getTail уже ??

+0

не совсем - вы хотите 'oldhead = this.getHead()', а затем 'this.head = this.getTail(). GetHead()', а затем 'this.tail = this.getTail(). GetTail() '. ответ отредактирован. –

+0

um, вы havent показали нам код для вашего конструктора. Если это 'someList (head, tail)', то в принципе вы можете добавить элемент в head-end с помощью '{return new someList (e, this)}'. I.e., 'this' становится новым« хвостом ». –

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

  • Нет связанных вопросов^_^