[英]How Do You Implement “add” method to Singly Linked List?
這是類標題及其下面的字段:
public class SinglyLinkedList <E> implements MiniList <E>
{
protected Entry <E> head = null;
private int size = 0;
我需要為我的實驗室實現這個方法,而且我對LinkedLists一無所知:
public boolean add(E element)
{
//method should return true once element is added
//EDIT: I THINK I SOLVED IT:
head.element = element;
return true;
//Does everyone think the two lines above look correct?
}
所以非常簡單的問題,我對非隨機訪問數據結構非常新。 有人可以幫我解決上面的問題嗎? 我需要一個基礎基礎,所以我可以繼續實驗的其余部分。
最初,您的頭部成員數據設置為null。 如果這是一個要求(相對於最初分配它),您需要在add()方法中檢查它並在必要時分配它:
if ( head == null )
{
head = new Entry<E>();
head.element = element;
}
如果head不為null,則必須分配一個新條目,並允許現有數據通過讓新數據引用它而保留為列表的一部分:
else
{
Entry<E> new_entry = new Entry<E>();
new_entry.element = element;
new_entry.next = head;
head = new_entry;
}
好吧,鏈接列表的工作方式如下:
你有頭節點,它有一個對下一個節點的引用,它引用了下一個節點,等等。這是我剛繪制的圖:
頭部引用了以下節點,但它也包含數據。 所以,如果我創建一個字符串鏈接列表。
LinkedList<String> groceryList = new LinkedList<String>();
groceryList.add("VEGGIES");
groceryList.add("FRUITS");
頭部有數據VEGGIES,然后還有對列表中下一個對象的引用,換句話說就是FRUITS術語,它也是尾部。
假設我們的列表是空的。 沒有頭,沒有尾巴,沒有數據。 我們將頭部指定為新條目。 它將是列表中的第一個元素,也是訪問列表的門戶。 如果列表不為空,為了添加到列表中,我們必須訪問列表中的當前最后一個元素。 要做到這一點,我們必須沿着名單前進。
//Some Pseudo Code
Entry current = head;
Entry last = null;
while(Not Done Looping)
{
Entry temp = current.getNext();
if(temp is not null) //We have a reference to another element
{
//We have more list to see
current = temp;
}
else
last = current;
}
這將給我們最后一個條目。 然后,為了添加另一個元素,我們只需將最后一個對象的引用設置為我們要添加的Entry。
這是它如何運作的要點。 現在你只需要根據你的“Entry”對象來實現它。
我假設添加意味着在該列表中添加一個元素? 你有什么嘗試?
您必須處理兩種情況:
想想在這兩種情況下你需要做什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.