2014-11-20 4 views
0

Для назначения (это должно быть довольно скоро), я должен вставить связанный список, который я реализовал вручную (не используя встроенный класс java). Связанный список выглядит следующим образом:enqueue связанный список - java

public class SnocList { 
    private char c; 
    private SnocList l; 

    public SnocList(){ 
    } 
    public SnocList (char x, SnocList y) { 
     this.c = x; 
     this.l = y; 
    } 
    public char getC(){ 
     return this.c; 
    } 
    public SnocList getL(){ 
     return this.l; 
    } 
    public void setNext(SnocList input){ 
     this.l = input; 
    } 

    public boolean isEmpty() { 
     if (this.c == 0) return true; 
     return false; 
    } 
} 

мой класс Queue выглядит следующим образом:

public class SnocQueue { 
    private SnocList list; 

    public SnocQueue(){ 
     this.list = new SnocList(); 
    } 

    public void enqueue(char c){ 
     //I don't know what to put here 
    } 
} 

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

['a' | -] -> ['b' | -] -> ['c' | null] добавить новый узел здесь

ответ

0

Для установки в очередь вам нужно поле «хвост» и поле «head», для этого примера я сделаю очередь объектов класса «Item», вы можете использовать узлы, которые вы нужно

public class Item { 
    private int value; 
    private Item next; 

    public Item(int val) { 
     this.value = val; 
    } 

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

и очереди:

public class SomeQueue { 
    private Item head; 
    private Item tail; 
    private int size;//size is used to verify if it has Items and avoid null references 

    public SomeQueue(){ 
     this.size = 0; 
    } 
    public void enqueue(Item item) { 
     if (this.size > 0) { 
      this.tail.setNext(item); 
      this.tail = item; 
     } else { //this is when the size is 0, it means is empty 
      this.head = item; 
      this.tail = item; 
     } 
     this.size++; 
    } 
} 

Как вы видите, важные вещи для вашей очереди являются голова и хвост, метод setNext важно также, чтобы сделать ссылки между узлами.

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