二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:Python - 节点
在有些情况下,存储数据的内存分配不能位于连续的内存块中。所以我们接受指针的帮助,其中数据和数据元素的下一个位置的地址也被存储。所以我们从当前数据元素的值中知道下一个数据元素的地址。通常这样的结构被称为指针。但在Python中,我们将它们称为节点。
节点是各种其他数据结构链接列表和发can可以在python中处理的基础。
创建节点
这些节点是通过实现一个将保存指针和数据元素的类来创建的。在下面的例子中,我们创建了一个名为daynames的类来保存星期几的名称。nextval指针被初始化为空和三个节点,并用值初始化,如图所示。
节点e1的下一个指针指向e3,而节点e3的下一个指针指向e2。
class daynames: def __init__(self, dataval=None): self.dataval = dataval self.nextval = None e1 = daynames('Mon') e2 = daynames('Tue') e3 = daynames('Wed') e1.nextval = e3 e3.nextval = e2遍历节点元素
我们可以通过创建一个变量并为其分配第一个元素来遍历上面创建的节点的元素。然后我们使用while循环和nextval指针来打印出所有的节点元素。请注意,我们还有一个额外的数据元素,并将nextval指针正确排列,以便按照正确的顺序将输出呈现为一周的几天。
class daynames: def __init__(self, dataval=None): self.dataval = dataval self.nextval = None e1 = daynames('Mon') e2 = daynames('Wed') e3 = daynames('Tue') e4 = daynames('Thu') e1.nextval = e3 e3.nextval = e2 e2.nextval = e4 thisvalue = e1 while thisvalue: print(thisvalue.dataval) thisvalue = thisvalue.nextval当上面的代码执行时,它会产生以下结果。
Mon Tue Wed Thu插入和删除等附加操作可以通过在链接列表和树等通用数据结构中使用此节点容器来实现适当的方法来完成。所以我们在接下来的章节中对它们进行研究。