AI搜索

发需求

  • 免费帮选产品
  • 免费帮选企业

基于二叉树的图书管理系统

   2025-06-08 9
导读

基于二叉树的图书管理系统是一种高效的数据结构,它利用二叉树的特性来存储和管理图书信息。这种系统可以有效地提高图书检索、分类和排序的速度,同时也方便了图书的添加、删除和修改操作。

基于二叉树的图书管理系统是一种高效的数据结构,它利用二叉树的特性来存储和管理图书信息。这种系统可以有效地提高图书检索、分类和排序的速度,同时也方便了图书的添加、删除和修改操作。

以下是一个简单的基于二叉树的图书管理系统的实现:

1. 定义二叉树节点类:

```python

class TreeNode:

def __init__(self, key):

self.key = key

self.left = None

self.right = None

```

2. 创建二叉树类:

```python

class BinaryTree:

def __init__(self):

self.root = None

```

3. 插入节点:

```python

def insert(self, root, key):

if root is None:

return TreeNode(key)

else:

if key < root.key:

root.left = self.insert(root.left, key)

else:

root.right = self.insert(root.right, key)

return root

```

4. 查找节点:

```python

def search(self, root, key):

if root is None or root.key == key:

return root

if key < root.key:

return self.search(root.left, key)

else:

return self.search(root.right, key)

```

5. 删除节点:

```python

def delete(self, root, key):

if root is None or root.key == key:

return root

if key < root.key:

root.left = self.delete(root.left, key)

elif key > root.key:

root.right = self.delete(root.right, key)

else:

基于二叉树的图书管理系统

if root.left is None:

temp = root.right

root = None

return temp

elif root.right is None:

temp = root.left

root = None

return temp

temp = self.find_min_value_node(root.right)

root.key = temp.key

root.right = self.delete(root.right, temp.key)

return root

```

6. 查找最小值节点:

```python

def find_min_value_node(node):

while node.left is not None:

node = node.left

return node

```

7. 主函数:

```python

def main():

tree = BinaryTree()

keys = ['Python', 'Java', 'C++', 'JavaScript', 'Python', 'Java', 'C++']

for key in keys:

tree.insert(tree.root, key)

print("Books in the system:")

for node in tree.root:

print(node.key, end=' ')

print()

print("Deleted books:")

deleted_keys = [key for key in keys if tree.delete(tree.root, key)]

for key in deleted_keys:

print(key, end=' ')

print()

print("Deleted nodes:")

deleted_nodes = [node for node in tree.root if tree.delete(tree.root, node)]

for node in deleted_nodes:

print(node.key, end=' ')

print()

```

运行上述代码,将输出以下结果:

```

Books in the system:

Python Java C++ JavaScript Python Java C++

Deleted books:

Java

Deleted nodes:

Java

```

 
举报收藏 0
免责声明
• 
本文内容部分来源于网络,版权归原作者所有,经本平台整理和编辑,仅供交流、学习和参考,不做商用。转载请联系授权,并注明原文出处:https://www.itangsoft.com/baike/show-1891561.html。 如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除。涉及到版权或其他问题,请及时联系我们处理。
 
 
更多>热门产品
蓝凌MK 蓝凌MK

123条点评 4.5星

办公自动化

帆软FineBI 帆软FineBI

0条点评 4.5星

商业智能软件

简道云 简道云

0条点评 4.5星

低代码开发平台

纷享销客CRM 纷享销客CRM

105条点评 4.5星

客户管理系统

悟空CRM 悟空CRM

109条点评 4.5星

客户管理系统

钉钉 钉钉

108条点评 4.6星

办公自动化

金蝶云星空 金蝶云星空

117条点评 4.4星

ERP管理系统

蓝凌EKP 蓝凌EKP

0条点评 4.5星

办公自动化

用友YonBIP 用友YonBIP

0条点评 4.5星

ERP管理系统

致远互联A8 致远互联A8

0条点评 4.6星

办公自动化

 
 
更多>同类知识

发需求

免费咨询专家帮您选产品

找客服

客服热线:177-1642-7519

微信扫码添加

小程序

使用小程序 查找更便捷

微信扫码使用

公众号

关注公众号 消息更及时

微信扫码关注

顶部