鱼C论坛

 找回密码
 立即注册
查看: 699|回复: 6

二叉树倒立翻转问题

[复制链接]
发表于 2018-10-13 00:50:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Bella666 于 2018-10-13 18:41 编辑

直接上图:

手画的那个是为了解释一下原本的二叉树,
(左右画反了,应该是一个 Binary Search Tree。)
程序要求吧二叉树上下翻转过来,输出格式如图1、2、3.
小框框是为了说明有多少个空格,程序中只需要以空格代替即可。

需要用附件中方法做题。

3

3

2

2

1

1

原二叉树

原二叉树

二叉树.zip

3.38 KB, 下载次数: 5

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-10-13 00:58:13 | 显示全部楼层
求大神帮助,学了两个月Python有点心累
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-13 09:41:20 | 显示全部楼层
你果然是学算法的吧!!!每次都有这种题!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-13 12:08:00 | 显示全部楼层
RIXO 发表于 2018-10-13 09:41
你果然是学算法的吧!!!每次都有这种题!

我还没学到算法课,这是Python课的题,我是转专业的,不过老师都默认我们是学过的,所以。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-13 12:09:17 | 显示全部楼层
图1、2、3 对应输入的测试数字是:0 3 / 0 10 / 20 10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 10:22:15 | 显示全部楼层
Bella666 发表于 2018-10-13 12:08
我还没学到算法课,这是Python课的题,我是转专业的,不过老师都默认我们是学过的,所以。。。

不是很正规,现在才调出来,跟老师说你没有基础吧
  1. # Randomly generates a binary search tree with values from 0 up to 9, and displays it growing up.

  2. import sys
  3. from random import seed, choice
  4. from binary_tree_adt import *

  5. def print_growing_up(tree):
  6.     h = tree.height()
  7.     def printTree(tree, n, lvl, i):
  8.         if n > lvl:
  9.             return
  10.         if tree.value == None:
  11.             print(" "*(2**(h-n+1) - 1), end = ' ')      
  12.         else:
  13.             printTree(tree.left_node, n+1, lvl, i)
  14.             printTree(tree.right_node, n+1, lvl, i)
  15.             if n == lvl:
  16.                 print(tree.value, end = ' '*(2**(i+1) - 1))

  17.     for i in range(h+1):
  18.         print(' ' * (2**i - 1) , end = '')
  19.         printTree(tree, 0, h-i, i)
  20.         print()

  21. try:
  22.     seed_arg, nb_of_nodes = (int(x) for x in
  23.                               input('Enter two integers, with the second one between 0 and 10: '
  24.                                    ).split()
  25.                             )
  26.     if nb_of_nodes < 0 or nb_of_nodes > 10:
  27.         raise ValueError
  28. except ValueError:
  29.     print('Incorrect input, giving up.')
  30.     sys.exit()

  31. ##seed_arg = 0
  32. ##nb_of_nodes = 10

  33. seed(seed_arg)
  34. data_pool = list(range(nb_of_nodes))
  35. tree = BinaryTree()

  36. for _ in range(nb_of_nodes):
  37.     datum = choice(data_pool)
  38.     tree.insert_in_bst(datum)
  39.     data_pool.remove(datum)

  40. print_growing_up(tree)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-22 22:30:26 | 显示全部楼层
不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 13:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表