2. Python程序从三叉树创建一个双向链表。

2025年3月17日 | 阅读 3 分钟

在这个程序中,给定的三叉树将被转换为相应的双向链表。

 

三叉树是一种分层数据结构,其中每个节点最多可以有三个子节点。这可以通过以先序方式遍历三叉树来完成,即,根 -> 左子节点 -> 中间子节点 -> 右子节点。首先,遍历根节点并将其添加到列表中。然后,分别添加其左、中、右子树。

 

三叉树

Python program to create a doubly linked list from a ternary tree

相应的双向链表

Python program to create a doubly linked list from a ternary tree

算法

  1. 定义一个Node类,表示三叉树中的一个节点。它将具有四个属性:data、left、middle、right,其中left、middle和right表示节点的三个子节点。
  2. Root表示三叉树的根。Head和tail节点表示双向链表的头和尾。
  3. 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 
下一个主题Python 程序