2. Python程序从三叉树创建一个双向链表。2025年3月17日 | 阅读 3 分钟 在这个程序中,给定的三叉树将被转换为相应的双向链表。 三叉树是一种分层数据结构,其中每个节点最多可以有三个子节点。这可以通过以先序方式遍历三叉树来完成,即,根 -> 左子节点 -> 中间子节点 -> 右子节点。首先,遍历根节点并将其添加到列表中。然后,分别添加其左、中、右子树。 三叉树  相应的双向链表  算法- 定义一个Node类,表示三叉树中的一个节点。它将具有四个属性:data、left、middle、right,其中left、middle和right表示节点的三个子节点。
- Root表示三叉树的根。Head和tail节点表示双向链表的头和尾。
- convertTernaryToDLL()会将给定的三叉树转换为相应的双向链表。
- 节点left、middle和right表示给定节点的子节点。
- 如果节点不为null,则将该节点插入列表中。
- 如果列表为空,则head和tail都将指向一个节点。
- 如果列表不为空,则将在列表末尾插入节点。这里,left和right指针将分别表示双向链表的previous和next指针。middle将不指向任何东西,因此只需将其设置为null。
- 当一个节点成功添加到列表中时,将递归调用convertTernaryToDLL()将给定节点的left、middle和right子节点添加到列表中。
a. displayDLL() 将显示列表中存在的所有节点。 - 定义一个新节点“current”,它将指向头节点。
- 打印 current.data 直到 current 指向 null。
- 在每次迭代中,current 将指向列表中的下一个节点。
程序输出 Nodes of generated doubly linked list:
5 10 20 40 50 12 24 36 48 15 30 45 60
|