我发现了一个很大的源代码,它使用了几种类型的链表数据结构。例如,代码中使用的简单链表数据结构是使用链接类型的nextLink节点和初始化对象的构造函数。
public class Link {
public int data1;
public double data2;
public Link nextLink;
//Link constructor
public Link(int d1, double d2) {
data1 = d1;
data2 = d2;
}
}
另一方面,另一段代码使用以下数据
给定指向单链表上的中间节点(非头、非尾)的指针。如何在给定指针所指向的节点之前插入一个新节点?
例如,给定单链表:
A -> B -> C -> D -> E
给定一个指向C (ptr = &C)的指针和一个新节点F,如何获取
A -> B -> F -> C -> D -> E
注意:我们没有指向A的指针。
谢谢
我遇到了两种实现双向链表的方法:
#define LIST_ENTRY(type) \
struct { \
struct type *le_next; /* next element */ \
struct type **le_prev; /* address of previous next element */ \
}
这种方法是在FreeBsd queue.h中实现的,我想知道为什么它使用指针指向le_prev
struct li