用静态链表生产二叉排序树
时间: 2023-11-20 22:57:35 浏览: 47
静态链表是一种用数组实现的链表,可以用来存储二叉排序树。下面是用静态链表生成二叉排序树的步骤:
1.定义一个结构体,包含三个成员:data(存储结点的值)、lchild(存储左子树的下标)、rchild(存储右子树的下标)。
2.定义一个数组,用来存储结构体。
3.初始化数组,将所有结点的lchild和rchild都赋值为-1。
4.读入结点的值,将其插入到数组中。
5.从根结点开始,按照二叉排序树的规则,将新结点插入到数组中。
6.重复步骤4和5,直到所有结点都插入到数组中。
7.遍历数组,输出二叉排序树。
下面是用静态链表生成二叉排序树的Python代码:
```python
class Node:
def __init__(self, data, lchild=-1, rchild=-1):
self.data = data
self.lchild = lchild
self.rchild = rchild
def insert(root, data):
if root == -1:
return Node(data)
if data < root.data:
root.lchild = insert(root.lchild, data)
else:
root.rchild = insert(root.rchild, data)
return root
def inorder(root, tree):
if root != -1:
inorder(tree[root].lchild, tree)
print(tree[root].data, end=' ')
inorder(tree[root].rchild, tree)
n = int(input("请输入结点个数:"))
tree = [Node(-1) for i in range(n)]
root = -1
for i in range(n):
data = int(input("请输入第%d个结点的值:" % (i+1)))
root = insert(root, data)
tree[i].data = data
if root != None:
if root.data < data:
tree[i].rchild = root
else:
tree[i].lchild = root
root = -1
print("中序遍历结果为:")
inorder(0, tree)
```
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)