在Java中,我被要求将整数值存储在一个单向链表中,然后打印存储在该列表中的元素。这是我想出来的:
int max = 10;
List<Integer> list = new ArrayList<Integer>();
for (int num = 0; i < max; i++){
list.add(num);
}
System.out.print(list);
我想知道,ArrayList和单链表是一回事吗?我想确保我正确地回答了这个问题。这有意义吗?谢谢!
// my print in normal order
public void printList()
{
ListElem curr = head;
while(curr != null)
{
System.out.print(curr.getData() + "->");
curr = curr.getNext();
}
}
// my attempt to print in reverse order
public void
我正在写一些代码,其中我需要删除循环链表中的一项(谁的头充当虚拟节点)并返回它(如果删除第一个节点)。我想我的代码是正确的,但我不确定。
我的理解正确吗?(从虚拟节点开始)
dummy -> A -> B -> C -> D -> dummy (绕到虚拟节点)
因此,如果我想删除第一段实际的数据(A),我需要将它赋给一个temp变量。所以节点优先= head.next。然后我需要让虚拟头部引用"b“,所以我需要做head.next = first.next。这就是所有需要做的事情吗?
private Node remove()
{
Node re
由于某些原因,我无法打印整个链表。我会错在哪里呢?请帮帮忙。提前谢谢。
列表的基本结构。
struct node
{
int num;
struct node *next;
};
typedef struct node *list;
Main函数。
int main()
{
int i, j, k, l;
list head = NULL, start = NULL, temp, p;
printf("Enter the number of nodes in the list: ");
scanf("%d",
我正在尝试用java实现链表。在我的主类中,我从user获取一些整数,并将它们放在一个链表中,然后打印出我的链表元素。到目前为止一切都很好,但是我认为在我的主类中,首先打印出每个元素的数据,然后再转到下一个元素是有意义的。当我这样做的时候,它不会打印我列表的最后一个元素,但它会打印第一个元素两次。我决定首先移动到下一个元素,然后打印前一个元素的数据,它工作得很好!有人能解释为什么吗?(检查我的代码的最后两行)。 public class Node {
Node next;
int data;
public Node(int data){
this.data=data;
}
} 我的
例如,我的讲师说过,在使用链表进行操作时,不要释放任何内存,并删除指针。此外,他说,在对双向链表进行操作时,应该确保边缘情况是正确的。有没有人可以对此进行扩展?我不确定我完全明白他的意思。
例如,这是我们正在处理的链表类型:
struct Node {
Node *next;
Node *prev;
T datum;
};
Node *first; // points to first Node in list, or 0 if list is empty
Node *last; // points to last Node