根据定义,链表是一个列表,它的每个元素都指向下一个元素(如果我们谈论的是双向链表,也可以是前一个元素) 。
然而,在Java语言中,LinkedList实现了List、Queue、Deque等等。
在LinkedList中找不到提供列表中下一个或上一个对象的方法,最好的方法是获取迭代器和对象。我的问题是,为什么Java将这种数据结构称为LinkedList,而它并不是真正的链表?链表可以在Java中实现,如下所示:
Public class MyLinkedList{
public int value;
public MyLinkedList next;
}
我正在尝试用一个C程序实现一个插件系统。插件将被编译为共享库,并在编译期间链接。
假设我有一个单链表结构定义:
struct plugin_iface
{
int data,
struct plugin_iface* next
};
每个插件创建此结构的全局实例,所有这些实例都具有相同的名称:
struct plugin_iface IfaceList =
{
.data = 42,
.next = &IfaceList
} // Defined in the global scope in each plugin
正如我所料,next指向了它的父级-
在实现两个问题(有限状态机和遗传规划)的解决方案时,我面临着同样的问题,即有效地想要取消方法的执行。以有限状态机为例,
public class FiniteStateMachine {
public class runState(State state) {
state.run();
}
}
我无法控制State,我所能做的就是调用它的run方法。有时候,state行为可能很糟糕,例如,它们可能花费太多的时间或太多的字节码。我想阻止他们,也就是取消跑步。我如何做到这一点,而不能够改变状态,只有FiniteStateMachine和单线程代码。