python 二叉树 链表
时间: 2023-10-08 13:06:54 浏览: 73
二叉树展开为链表.md
二叉树和链表都是常见的数据结构,它们之间也有一些联系和区别。
在二叉树中,每个节点最多有两个子节点,分别称为左子节点和右子节点。而在链表中,每个节点只有一个后继节点。
在 Python 中,可以通过类的方式来实现二叉树和链表。
下面是一个简单的二叉树类的实现:
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def insert(self, value):
if not self.root:
self.root = Node(value)
else:
self._insert(value, self.root)
def _insert(self, value, node):
if value < node.value:
if node.left:
self._insert(value, node.left)
else:
node.left = Node(value)
else:
if node.right:
self._insert(value, node.right)
else:
node.right = Node(value)
```
在这个实现中,我们使用了 Node 类来表示二叉树节点,它包含一个值和两个指针,分别指向左子节点和右子节点。
BinaryTree 类包含一个根节点,它的 insert 方法可以将一个新节点插入到树中。
下面是一个简单的链表类的实现:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def add(self, value):
if not self.head:
self.head = Node(value)
else:
current = self.head
while current.next:
current = current.next
current.next = Node(value)
```
在这个实现中,我们使用了 Node 类来表示链表节点,它包含一个值和一个指针,指向下一个节点。
LinkedList 类包含一个头节点,它的 add 方法可以将一个新节点添加到链表的末尾。
需要注意的是,二叉树和链表的操作有很大的不同,需要根据具体的需求选择合适的数据结构。
阅读全文