我用composite模式写的一个二叉树的例子

手把手教你用 Docker 构建自己的 CentOS 基础镜像 目录一、准备CentOS基础镜像二、撰写Dockerfile三、构建Docker镜像四、生成Docker容器 相信码农们经常会听说:虚拟机将成为历史,Docker才是未来 !!! 事实如此,现在大部分公司都在用 Docker 技术,想拥有自己的 Docker 专属镜像,那么 Dockerfile 就是入门,现在让我们一起来看一下 ------ 构建 Docker 镜像的全过程。 好文章 记得收藏... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 我用composite模式写的一个二叉树的例子 1,Component 是抽象组件 Tree 和Leaf 继承Component private String name; //树或叶子的名称 addChild(Component leftChild,Component rightChild); //给一个树上加上一个左孩子,一个右孩子 getName(){return name;} getTreeInfo(){} //得到树或叶子的详细信息 getLength(); //得到树的高度 2,Tree 二叉树,一个左孩子,一个右孩子 3,Leaf 是叶子节点 4,Test 是测试节点 /** Component.java **************/ package binarytree; public abstract class Component { private String name; public abstract Component addChild(Component leftChild,Component rightChild); public String getName(){return name;} public void getTreeInfo(){} public abstract int getLength(); } /** Leaf.java **************/ package binarytree; public class Leaf extends Component{ private String name; private Component leaf=null; public Leaf(String name) { this.name=name; } public Component addChild(Component leftChild,Component rightChild){ return this; } public String getName(){ return name; } public int getLength() { return 1; } public static void main(String[] args) { } } /** Tree.java **************/ package binarytree; public class Tree extends Component { private String name; private Component leftChild; private Component rightChild; public Tree(String name,Component leftChild,Component rightChild) { this.name=name; this.leftChild=leftChild; this.rightChild=rightChild; } public Tree(String name) { this.name=name; this.leftChild=null; this.rightChild=null; } public Component addChild(Component leftChild,Component rightChild){ this.leftChild=leftChild; this.rightChild=rightChild; return this; } public String getName(){ return name; } public void getTreeInfo() //得到树或叶子的详细信息 //先打印自己的名字,再遍例左孩子,再遍例右孩子 //如果左孩子或右孩子是树,递归调用 { System.out.println(" this trees name is " getName()); if(this.leftChild instanceof Leaf) { System.out.println(getName() "s left child is " this.leftChild.getName() ",it is a Leaf"); } if(this.leftChild instanceof Tree){ System.out.println(getName() "s left child is " this.leftChild.getName() ",it is a Tree"); this.leftChild.getTreeInfo(); } if(this.leftChild==null) { System.out.println(getName() "s left child is a null"); } if(this.rightChild instanceof Leaf) { System.out.println(getName() "s right child is " this.rightChild.getName() ",it is a Leaf"); } if(this.rightChild instanceof Tree) { System.out.println(getName() "s right child is " this.rightChild.getName() ",it is a Tree"); this.rightChild.getTreeInfo(); } if(this.rightChild==null) { System.out.println(getName() "s right child is a null"); } //System.out.println(getName() "s 高度 是 " getLength()); } public int getLength() { //比较左孩子或右孩子的高度,谁大, 1 返回 // 空孩子的处理 if(this.leftChild==null) { if(this.rightChild==null) return 1; else return this.rightChild.getLength() 1; } else { if(this.rightChild==null) { return this.leftChild.getLength() 1; } else { if((this.leftChild.getLength())>=(this.rightChild.getLength())) return this.leftChild.getLength() 1; else return this.rightChild.getLength() 1; } } } public static void main(String[] args) { } } /** Test.java 测试类 **************/ package binarytree; public class Test { public Test() { } public static void main(String[] args) { Component tree=new Tree("luopeng"); Component leaf_child=new Leaf("luopeng1"); Component right_child=new Leaf("luopeng2"); tree=tree.addChild(leaf_child,right_child); //tree=tree.addRightChild(right_child); tree.getTreeInfo(); Component tree1=new Tree("luopeng2"); tree1.addChild(tree,leaf_child); tree1.getTreeInfo(); Component tree2=new Tree("luopeng3"); tree2.addChild(tree,null); tree2.getTreeInfo(); Component tree4=new Tree("luopeng4"); tree4.addChild(null,tree); tree4.getTreeInfo(); System.out.println(tree4.getName() "的高度是 " tree4.getLength()); }
智驾芯片&软件分层&测试 智能驾驶相关的芯片,软件分层,测试相关内容 阅读详情

相关推荐

告别环境依赖!用PyInstaller把PaddleOCR项目打包成独立EXE(附完整spec文件配置)

本文详细介绍了如何使用PyInstaller将PaddleOCR项目打包成独立EXE文件,彻底解决Python环境依赖问题。通过完整的spec文件配置和实战技巧,开发者可以轻松创建开箱即用的OCR工具,特别适合需要交付给非技术用户的场景。文章涵盖环境配置、模型打包、性能优化等关键环节,并提供了解决常见问题的方案。

weixin_33712987的博客 576

用composite模式写的一个二叉树的例子

jacbull的专栏 503

C# 开发 WPS 插件实战:从环境搭建到功能实现(附完整代码)

本文提供了一份详尽的C#开发WPS插件实战指南,涵盖从环境搭建到功能实现的完整流程。通过COM技术,开发者可以创建自定义插件,为WPS Office扩展自动化功能,如文档处理与格式转换。文章包含核心概念解析、Ribbon界面集成、调试部署方法及完整代码示例,帮助开发者快速上手。

rust6ferris的博客 928

组合模式(Composite Pattern): 复杂的树形结构

组合模式”和“组合优于继承”这一俗语之间, 并没有直接的概念联系。

萧萧的专栏 2380

HMC7044芯片模拟SPI配置

摘要: HMC7044是一款高性能双环路整数N分频抖动衰减器,支持SPI接口配置,适用于高速数据转换器时钟系统。该芯片采用双PLL级联架构,具有14路可配置输出,可满足GSM/LTE基站设计需求。SPI接口采用3线模式(SLEN/SCLK/SDATA),支持24位寄存器读写(13位地址+8位数据)。驱动实现基于Zynq EMIO模拟SPI,提供初始化、数据传输及寄存器配置功能,支持三线制工作模式和多种时钟参数设置。

toonyhe的博客 1099

保姆级教程:用BIGEMAP和Global Mapper搞定5米精度DEM高程数据下载与处理

本文提供了一份详细的5米精度DEM高程数据处理教程,涵盖从BIGEMAP下载到Global Mapper处理的完整流程。通过实战案例和避坑指南,帮助用户掌握高效下载DEM数据、优化等高线生成及坐标系转换的关键技巧,适用于GIS新手和专业人士。

weixin_34169322的博客 392

详解组合模式(Composite)

组合模式(Composite) 组合模式有时又叫部分-整体模式 在处理类似树形结构的问题时比较方便。 直接来看代码: public class TreeNode { private String name; private TreeNode parent; private Vector<TreeNode> children = new Vector<TreeNode>(); public TreeNode(S

shkstart的博客 284

Windows 2012 SYSVOL复制失败的处理

题外话:晓原理、知架构、查日志是排错的三件法宝今天在DC1上新建并链接了一个组策略对像,在客户端刷新时,却报下面的错误:“处理组策略失败。Windows无法应用组策略对象LDAP….”如下图所示:于是在客户端用\\domain.com访问,发现\\domain.com\SYSVOL\domain.com\policies下面没有上面报错的组策略对象。这是怎么一回事呢,pin...

weixin_33989780的博客 1669

C++实现的composite pattern(组合模式)

最近被设计模式深深吸引,记录自己经历和实验,以备以后翻阅:1. 设计模式名称:composite pattern2. 设计模式解决的问题: 解决整体和部分关系,尤其适合递归式整体和部分关系。如树结构,家具结构或者电脑硬件结构等等。3. 设计模式的设计思想:设计一个接口,它公布所有或者部分子类操作。让用户程序无差别对待子类(原子子类和组合子类)。该模式有两种方法实现:     a: 处于安全考虑,只...

thomas1997ster的博客 291

YOLOv8中的C2f模块代码详解

在YOLOv8网络结构中,C2f模块(CSP Bottleneck with 2 Convolutions)是一个关键组件,用于实现跨阶段部分聚合

zzzyyy8的博客 3万+

Python的单元测试之unittest

是一个功能类似 unittest 的库,它集合众家标准测试库之所长,和 unittest 相比,功能更为强大,使用更为简单,OpenStack 广泛的利用它编写单元测试。unittest 提供了自动匹配发现并执行测试用例的功能,随着项目代码结构越发庞大,势必有多个测试文件,自动匹配发现并测试用例的功能在此就显得非常有用,只要满足。unittest 提供了丰富的命令行入口,可以根据需要执行某些特定的用例。的测试用例都会被 unittest 发现并执行,测试用例文件的默认匹配规则为 test*.py。

1、测试博主技术知识分享 2、pos行业知识技术分享 3、java后端技术知识分享 4、嵌入式技术知识分享 5、运维部署相关知识分享 283

Java设计模式之Composite模式:例子

用java实现一个二叉树,节点有一个值,为value,int类型。设法将这些节点组织成一棵树,并实现这些节点得遍历。package structure.composite;import java.util.*;public class Node { private Node leftChild; private Node rightChild;    private int value;   pu...

小宝 211

JavaSwing_1.1: FlowLayout(流式布局)

FlowLayout,流式布局管理器。按水平方向依次排列放置组件,排满一行,换下一行继续排列。

谢TS的博客 7万+

组合模式【Composite Pattern】

大家在上学的时候应该都学过“数据结构”这门课程吧,还记得其中有一节叫“二叉树”吧,我们上学那会儿这一章节是必考内容,左子树,右子树,什么先序遍历后序遍历什么,重点就是二叉树的的遍历,我还记得当时老师就说,考试的时候一定有二叉树的构建和遍历,现在想起来还是觉的老师是正确的,树状结果在实际项目应用的非常广泛。       咱就先说个最常见的例子,公司的人事管理就是一个典型的树状结构,你想想你公司的结

admin1973的专栏 541

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

组合模式(Java)

组合模式(Java) 先来张百度UML 本次例子的,我用的UML工具画这种图有点难看 我们都知道凤凰生孔雀,孔雀生大鹏,大鹏生老鹰这一传言,在本次例子中,我就以此为例,假设老鹰分为苍鹰和雀鹰,这些鸟都具有翅膀,我们把翅膀和具体鸟类组合起来,组合成某种鸟类,便可以称为组合模式了。也就是在具体鸟类实现添加翅膀这一操作。 而且组合模式可以递归下去,也就是凤凰(具体鸟类)是孔雀(具体鸟类)的后代,孔雀...

weixin_43486804的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

11、组合模式(Composite)

组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便

Halfopen的专栏 7293

Composite模式

1.整体与部分的关系。二叉树的树与子树之间就是整体与部分关系。android中的View与child view也是整体与部分的关系。

sea_sun_sea的专栏 532

Structual设计--Composite模式

1.意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 2.别名 无 3.动机 在绘图编辑器和图形捕捉系统这样的图形应用程序中,用户可以使用简单的组件创建复杂的图表。用户可以组合多个简单组件以形成一些较大的组件,这些组件又可以组合成更大的组件。一个简单的实现方法是为Text和Line这样的图元定义一些类,另外定义

feiyangxiaomi的专栏 937

组合模式(Composite)

11、组合模式(Composite) 组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图: 直接来看代码: [java] view plaincopy public class TreeNode { private String name; private TreeNode parent; private Vector chil...

IT界的一只菜鸟 297

设计模式(c++)笔记之九(Composite模式)

一、描述       概念:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合的使用具有一致性。 Composite 模式的典型结构图为:  图 2-1:Composite Pattern 结构图  二、实例:

小枫的专栏 2597

设计模式——组合模式(Composite)

组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便▲代码:public class TreeNode { private String name; private TreeNode parent; private Vector&lt;TreeNode&gt; children = new Vector&lt;TreeNode&gt;(); public TreeNod...

MiaoTai 858

浅谈Java设计模式(十一)组合模式(Composite)

前言: 组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图: 实现代码: public class TreeNode { private String name; private TreeNode parent; private Vector children = new Vector();

比较喜欢、笑的博客专栏 6875

二十三种设计模式11 组合模式(Composite)

组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图: 直接来看代码: 1. public class TreeNode { 2. 3. private String name; 4. private TreeNode parent; 5. private Vector<TreeNode> children =...

servepeople的博客 129

[设计模式]组合模式(Composite) treenode

组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图: 直接来看代码: public class TreeNode { private String name; private TreeNode parent; private Vector children = new Vector();

kangbin825的专栏 1248
上一篇: SCJP考试题310-025(第二套)18-50/147
下一篇: 数组排序2则
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值