我正在使用链接列表。我正在尝试创建一个循环链表,但我无法准确理解发生了什么。我曾试图将其映射出来,但最终我感到困惑。但我认为我最大的问题在这里请解释这行代码如何工作?
prevLoc,list,newNode和location都是链表节点。
这里是我不明白的路线。 newNode链接设置为空列表。 list = newNode是什么意思?这是否意味着它是newNode的任何元素?
if(prevLoc == null)
{
newNode.setLink(list);
list = newNode;
}
以下是有关引用的排序类/添加方法的其余部分。
public class CRefSortedList<T extends Comparable<T>>
extends CRefUnsortedList<T>
implements ListInterface<T>
{
public CRefSortedList()
{
super();
}
public void add(T element)
{
LLNode<T> prevLoc;
LLNode<T> location;
T listElement;
location = list;
prevLoc = null;
while(location != null)
{
listElement = location.getInfo();
if(listElement.compareTo(element) < 0)
{
prevLoc = location;
location = location.getLink();
}
else
{
break;
}
}
LLNode<T> newNode = new LLNode<T>(element);
if(prevLoc == null)
{
newNode.setLink(list);
list = newNode;
}
else
{
newNode.setLink(location);
prevLoc.setLink(newNode);
}
numElements++;
}
}
嗯,我不确定这本书。而我的教授的“教学”则是让我们直接从书中输入代码,而不是真正解释或回顾发生的事情。因此我已经转向堆栈溢出以获得关于它的意义的一些指导 – twjohns29 2014-11-05 23:09:26