当前位置: 首页 > news >正文

茶叶网站建设网页设计制作美区下载的app怎么更新

茶叶网站建设网页设计制作,美区下载的app怎么更新,牛商网朱依静,小型购物网站建设数据结构之二叉树#xff1a;Python代码解决折纸问题 折纸问题 要求#xff1a;请把一段纸条竖着放在桌子上#xff0c;然后从纸条的下边向上方对折1次#xff0c;压出折痕后展开。此时折痕是凹下去的#xff0c;即折痕突起的方向指向纸条的背面。如果从纸条的下边向上方…数据结构之二叉树Python代码解决折纸问题 折纸问题 要求请把一段纸条竖着放在桌子上然后从纸条的下边向上方对折1次压出折痕后展开。此时折痕是凹下去的即折痕突起的方向指向纸条的背面。如果从纸条的下边向上方连续对折2次压出折痕后展开此时有三条折痕,从上到下依次是下折痕、下折痕和上折痕。 分析: 我们把对折后的纸张翻过来让粉色朝下这时把第-次对折产生的折痕看做是根结点那第二次对折产生的下折痕就是该结点的左子结点而第二次对折产生的上折痕就是该结点的右子结点这样我们就可以使用树型数据结构来描述对折后产生的折痕。这棵树有这样的特点: 根结点为下折痕;每一个结点的左子结点为下折痕;每一个结点的右子结点为 上折痕; 画成树会是这样 实现步骤: 1.定义结点类2.构建深度为N的折痕树;3.使用中序遍历,打印出树中所有结点的内容; 构建深度为N的折痕树: 1.第一次对折,只有一条折痕,创建根结点;2.如果不是第一次对折,则使用队列保存根结点;3.循环遍历队列: 3.1从队列中拿出一个结点; 3.2如果这个结点的左子结点不为空,则把这个左子结点添加到队列中; 3.3如果这个结点的右子结点不为空,则把这个右子结点添加到队列中; 3.4判断当前结点的左子结点和右子结点都不为空,如果是,则需要为当前结点创建一个值为down的左子结点 , 一个值为up的右子结点。 方法介绍 create_paper_folding_tree()创建折纸树queue为辅助队列初始时存入根结点(整棵树)如果queue不为空则将树取出来判断其是否有左右子树如果有将左右子树分别再放入queue继续循环判断print_this_tree()使用中序遍历的方式打印结点的值 接下来使用代码实现并将结点的值中序遍历打印出来 代码实现 class Node:def __init__(self, item):self.item itemself.left Noneself.right Noneclass PaperFolding:def __init__(self):self.root Nonedef create_paper_folding_tree(self, number):Emulate the process of paper-folding and create a binary treefor n in range(number):# When the first folding, assign down to the root node.item and go on loopif n 0:self.root Node(down)continue# When not the first folding, level-orderly traverse from up to down,# and from left to right to create new leaves# Create a subsidiary list to traverse level-orderlyqueue [self.root]while queue:# Pop from the left(prior to the left sub-tree)node queue.pop(0)# Append nodes to queue(priority order: left-parent-right) and go on traversing in while loopif node.left:queue.append(node.left)if node.right:queue.append(node.right)if not node.left and not node.right: # Have come to the leaves# In paper-folding tree,# sub-tree on the left value will be down and sub-tree on the right will be upnode.left Node(down)node.right Node(up)return self.rootdef print_this_tree(self):Traverse mid-orderly and print all values of the tree nodesif not self.root:returndef print_values(node):if node.left:print_values(node.left)print(node.item, end ) # Mid-order, left -- root -- rightif node.right:print_values(node.right)print_values(self.root)代码测试 if __name__ __main__:PF PaperFolding()PF.create_paper_folding_tree(3)PF.print_this_tree()测试结果 down down up down down up up 对比折纸树的层序遍历没有问题
http://www.huolong8.cn/news/430003/

相关文章:

  • 银川网站建站公司中国工程建设监理协会网站
  • 青海 住房和建设厅网站学生网站设计
  • 手机下载app并安装天津企业seo
  • 域名估价哪个网站准确开封网站推广
  • seo整站优化卖做游戏点卡网站创业
  • 手机手机网站开发婚车网站模版
  • 怎么做刷业务网站中企动力建设网站怎么样
  • 网站建设和维护自学营销型网站效果
  • 网站网站制作网站 内容优化
  • 一般网站要多大空间网架生产企业
  • 婚纱摄影类网站模板网站建设企业宣传册
  • 龙岗平湖网站开发帮人家做家务的网站
  • 官网整站优化网站开发费会计处理
  • asp怎么新建网站湖南人文科技学院全国排名
  • 榆社县济南网站建设公司 大学企业网站开发课程设计报告
  • 个人站长怎么样做网站才不会很累企业应如何进行网站建设
  • 网站设计遇到的问题swift 网站开发
  • 如何网站建设有利于网络营销怎样做公司网站推广
  • 福州做网站需要多少钱网站内部链接有什么作用
  • 大连网站建设在线建网站哪家划算
  • 欧式建筑网站开发公司项目经理职责
  • 泰国网站建设秦皇岛市有几个区县
  • 货源网站程序上饶做网站哪家好哦
  • 怎么查看网站哪个公司做的wordpress自动把内容变成图片
  • 自己做家具的网站wordpress 如何修改主题中元素
  • 莱西做网站的wordpress菜单对齐修改
  • 西安网站开发公司哪家强水溶花边外发加工网
  • 建设网银登录网站爱网聊的人
  • 网站开辟两学一做专栏wordpress添加 logo
  • 云南网站建设优选平台西安建站免费模板