如何在Python中将双链表实现到我的树结构中?

时间:2015-10-26 00:05:41

标签: python data-structures tree

所以我试图用python表示一个XML文件。我已经设法做到了。但是我树中的每个子节点都必须双重链接,我不知道如何做到这一点。我在网上找到了一些代码示例,但它们都使用了类,教授不希望我们使用类。这是我的代码:

from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
import xml.etree.ElementTree as etree


def create_tree(): #This function creates the root element of my tree
    n = input("Enter your root Element: ")
    root = Element(n)
    tree = ElementTree(root)
    print(etree.tostring(root))
    return root

def add_child():
    root = create_tree()
    new = True
    while new == True:
        ask = input("If you wish to add a new child type 'yes', else type something else: ")
        if ask == 'yes':
            n = input("Enter the name of the node: ") #This block of code creates a child and appends it to the root element
            node = Element(n)
            root.append(node)
            print(etree.tostring(root))
        else:
            break
    return etree.tostring(root)
add_child()

对于那些想知道的人来说,这个项目的目的是创建一个带有无界分支的有根树。我希望一旦我可以实现双向链表,我就可以在子节点中添加子节点。

1 个答案:

答案 0 :(得分:0)

您应该能够使用列表实现链接列表。你可以定义 每个元素作为列表,包含元素本身,前面的项目以及后面的项目。如果列表分别包含前一个节点,下一个节点和元素本身,并且头部存储在head中,则将newElement附加到列表开头的语法如下:

newNode = [None,head,newElement]
head[0] = newNode
head = newNode