Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么给定的二叉树是用空节点构造的?_Python_List_Tree_Binary_Representation - Fatal编程技术网

Python 为什么给定的二叉树是用空节点构造的?

Python 为什么给定的二叉树是用空节点构造的?,python,list,tree,binary,representation,Python,List,Tree,Binary,Representation,我已经开始阅读关于树的结构和二叉树是第一个 我使用以下资源: 在那里可以找到二叉树图像: 对于列表表示的列表,它看起来像: 我的问题是:如果二叉树图像上没有显示空节点,为什么需要用箭头标记的空节点?正如我们所知,二叉树最多可以有两个节点,那么,为什么我们需要这个空节点呢?这个空节点如何帮助我们?或者这只是我们应该使用的约定?这主要在链接中解释,特别是构造函数: def BinaryTree(r): return [r, [], []] 创建新叶时,它始终包含: 价值本身 左节点 右节

我已经开始阅读关于树的结构和二叉树是第一个

我使用以下资源:

在那里可以找到二叉树图像:

对于列表表示的列表,它看起来像:


我的问题是:如果二叉树图像上没有显示空节点,为什么需要用箭头标记的空节点?正如我们所知,二叉树最多可以有两个节点,那么,为什么我们需要这个空节点呢?这个空节点如何帮助我们?或者这只是我们应该使用的约定?

这主要在链接中解释,特别是构造函数:

def BinaryTree(r):
  return [r, [], []]
创建新叶时,它始终包含:

  • 价值本身
  • 左节点
  • 右节点

这样做的好处是,在解析树时,不必检查
left
right
是否存在,就像它们一直存在一样。这使得代码更加规则和简单。

似乎是一种实现选择。带箭头的列表似乎是C的右子级的占位符。