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

网站建设得花多钱设计网站的软件

网站建设得花多钱,设计网站的软件,制作php网站用什么软件,建筑网站ad数据结构之二叉树#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.pierceye.com/news/593070/

相关文章:

  • 辽阳企业网站建设团队网络营销与直播电商课程
  • 枣庄网站建设电话临沂广润网站建设
  • 长春市制作网站费用郑州网站专业制作
  • 婚恋网站排名前十名淘宝客网站开发一个
  • 泰国网站的域名物流公司哪家便宜又好
  • 找工作的平台seo第三方点击软件
  • 青岛市建设监理协会网站网站开发工作量评估
  • 深圳网站设计与制作公司德州万企互联网站制作
  • 制作一个链接网站400电话网站模板
  • 网站建设网站网站建设网站濮阳网站建设网站
  • 追天网站建设 优帮云网页设计基础入门
  • 北京网站的建立的wordpress mofile
  • 在网上做翻译的网站私募网站建设
  • 网站建设明薇通网络服务好企业官网网站建设免费
  • php开发企业网站教程企业网站怎么建设公司
  • 网站开发 保密期限不用实名认证的网页游戏
  • 网站制作公司的流程网络运营公司经营范围
  • 杭州公司网站制作维护运城建设银行网站
  • 做一个个人主页的网站怎么做网站整合建设方案
  • 做亚马逊运营要看哪些网站专业排名
  • 网站做跳转影响排名吗店面设计多少钱一个平方
  • 中国建设注册中心网站启用中文域名大网站
  • 贵阳市建设城乡规划局网站一个新产品策划方案
  • 做设计什么网站平台好点做私活河南省建设厅53号文
  • 酷网站欣赏mit网站可以做app
  • 网站建设公司哪家好 都来磐石网络推广软件平台排行榜
  • 个人博客网站开发毕业设计东莞建设网站官网住房和城乡
  • 怎么下载网站的视频室内设计专业网站
  • 和幼儿做网站爱wordpress主题简
  • wordpress 大型网站吗怎么做网站超市