我想写一个java类CircularList其中包含了常用的节点内部类和实例变量:Java编程 - 循环链表
0
A
回答
0
提示...循环链表应该有一个和以前的,而不是第一个和最后。逻辑很重要
2
好的,我不会给你这个班的全部实施,而是我会给你一些建议。
- 您不需要持有对最后一个元素的引用。放置一个上一个和下一个引用到你的节点,你的最后一个节点将是第一个。预览
除了圆形列表没有结束的事实,它们与常规列表完全相同,但是在哪里可以找到像这样的最后一个项目:
Node tmp = first;
while(tmp.Next!= null) tmp = tmp.Next;
在循环链表的想法是这样的:
Node tmp = first;
while (tmp.Next != first)
tmp = tmp.Next;
因为你永远也找不到指向空节点,除非该列表是空的。最后一个建议是,如果你需要实现一个索引,记得在一个循环表有作为指标超出范围,没有这样的事,因为
list[count] = list[0] = list[count * k]
记住这一点,因此在计算你的这些方法的指数可相当棘手。对于正面指标,主要思路是:
index = index % count;
对于负值略有不同。我希望我能用我的话帮助你。如果你想要一个实现,我相信,如果你礼貌地问谷歌,应该有几个:)
祝你好运!
2
我不确定你的问题是什么,你似乎有所需的一切。链接列表和普通列表之间唯一的区别就是增加结尾。
在常规链接列表中,您将创建一个新节点并将最后一个元素指向该节点。在这种情况下,您将•Last节点中的指针更改为指向新节点,并将新节点指向•First。
删除工作方式与正常链接列表相同。每当你想删除一个节点时,你会发现哪一个节点指向那个节点(先前,或者在删除第一个节点的情况下,选中•Last),并指向被删除节点指向的任何节点。
如果这不能解决您的问题,请告诉我,我会尽力帮助。
只注意到有人已经要求完全一样的问题: Can I use java.util.LinkedList to construct a circular/cyclic linked list?
0
class Node {
int value;
Node next;
Node prev;
Node(int initialValue) {
value = initialValue;
next = null;
prev = null;
}
public int getValue() {
return this.value;
}
}
class NodeList {
Node pointer;
NodeList() {
pointer = null;
}
public void insertNode(int nodeValue) {
Node newNode = new Node(nodeValue);
if(pointer == null) {
newNode.next = newNode;
newNode.prev = newNode;
}else if(pointer.next == null && pointer.prev == null && pointer != null) {
newNode.next = pointer;
newNode.prev = pointer;
pointer.prev = newNode;
pointer.next = newNode;
}
else if(pointer != null) {
newNode.next = pointer.next;
newNode.prev = pointer;
pointer.next.prev = newNode;
pointer.next = newNode;
}
pointer = newNode;
System.out.println(“Successfully inserted : ” + pointer.getValue());
}
public void printRing(boolean direction) {
Node tempNode = pointer;
do {
System.out.println(“Value = ” + tempNode.getValue());
tempNode = direction ? tempNode.next : tempNode.prev;
} while(tempNode.value != pointer.value);
}
}
相关问题
- 1. 循环中的Java编程
- 2. Java的链接列表 - 连续循环
- 3. java中的循环链表问题
- 4. Java中的循环链接列表
- 5. 循环链表的Java迭代器
- 6. 循环链表 - 无限循环
- 7. JAVA链表如何使用for循环循环?
- 8. 循环链表C
- 9. javascript循环链表
- 10. 循环队列和循环链表
- 11. Java编程做循环和库
- 12. JAVA编程插座无限循环
- 13. java编程循环不工作
- 14. Java/Android编程 - 循环失败
- 15. Java菜单驱动编程和循环
- 16. 双向链表循环链表
- 17. JAVA - 循环链表/在链表中找到一个字符串
- 18. 同步循环链表
- 19. c#编程循环
- 20. Python编程循环
- 21. C编程循环
- 22. 理解双向链表循环链表
- 23. 单链表到循环链表
- 24. C链表无限循环
- 25. 链表不正确循环
- 26. python中的循环链表
- 27. 通过循环列表循环Java
- 28. 循环链接列表
- 29. 链接列表循环
- 30. PHP循环链表实现
这接缝像功课..我有没有猜呢? – 2010-11-29 04:43:25
嗨同学学生! PLZ尝试一些事情,当你遇到困难时,我们可以推动你一点。伊莫看你的实验室实践中的第一堂幻灯片和第一个练习。 – Muggen 2010-11-29 04:44:27
如果你向他们展示你到目前为止尝试过的东西,人们会乐于提供帮助。 – Naveen 2010-11-29 04:44:53