java生成树代码

java写了一个最小生成树问题的程序,在进行快速排序边长的权重时,出现了下面的报错

说明 edges[] edgelist1= g.listedges(graph1); 中的 listedges 方法有问题

class graph {

public double[][] generate(int n) {

return null;

}

public double[] listlength(double[][] d) {

return null;

}

public edges[] listedges(double [][] d) {

return null;

}

}

全返回null的,,,,,,,,,都还没做

java生成树代码

用Java实现生成树协议

 快速生成树协议(RSTP)STP并不是已经淘汰不用,实际上不少厂家目前还仅支持STP。STP的最大缺点就是他的收敛时间太长,对于现在网络要求靠可靠性来说,这是不允许的,快速生成树的目的就是加快以太网环路故障收敛的速度。1.RSTP 5种端口类型STP定义了4种不同的端口状态,监听(Listening),学习(Learning),阻断(Blocking)和转发(Forwarding),其端口状态表现为在网络拓扑中端口状态混合(阻断或转发),在拓扑中的角色(根端口、指定端口等等)。在操作上看,阻断状态和监听状态没有区别,都是丢弃数据帧而且不学习MAC地址,在转发状态下,无法知道该端口是根端口还是指定端口。表8-20中看RSTP的端口状态只有三种状态,Discarding、Leaning和Forwarding。表8-20 STP和RSTP端口状态比较RSTP有五种端口类型。根端口和指定端口这两个角色在RSTP中被保留,阻断端口分成备份和替换端口角色。生成树算法(STA)使用BPDU来决定端口的角色,端口类型也是通过比较端口中保存的BPDUB来确定哪个比其他的更优先。1)根端口非根桥收到最优的BPDU配置信息的端口为根端口,即到根桥开销最小的端口,这点和STP一样。请注意图8-16上方的交换机,根桥没有根端口。按照STP的选择根端口的原则,SW-1和SW-2和根连接的端口为根端口。2)指定端口与STP一样,每个以太网网段段内必须有一个指定端口。假设SW-1的BID比SW-2 优先,而且SW-1的P1口端口ID比P2优先级高,那么P1为指定端口,如图8-17所示。 图8-16 RSTP根端口 图8-17 指定端口的选择3)替换端口如果一个端口收到另外一个网桥的更好的 BPDU,但不是最好的,那么这个端口成为替换端口,如图8-18所示。对于SW-2来说,端口P3收到的BPDU比自己优先,自己为次优先,P3为替换端口。4)备份端口如果一个端口收到同一个网桥的更好 BPDU,那么这个端口成为备份端。当两个端口被一个点到点链路的一个环路连在一起时,或者当一个交换机有两个或多个到共享局域网段的连接时,一个备份端口才能存在。如图8-19所示,SW-1的P1和P2口同时接入到以太网的同一网段,P1为指定端口,P2 优先级低,则P2端口为备份端口。 图8-18 替换端口的选择 图8-19 备份端口的选择5)禁用端口在快速生成树协议应用的网络运行中不担当任何角色。2.BPDU更新与变化RSTP添加标志位,如图8-20所示。在STP中,标志位只有0为TC和7为TCA使用,RSTP使用其中保留的6位。另外,RSTP在BPDU指定了端口的角色和端口状态,并且采用提议/同意的控制机制。 具体 参考 下

Java生成树中的从根到叶子节点的所有路径

方法是在dfs的过程中维护dfs的路径,到达叶子结点时将路径加入到答案中,具体见代码的注释。

输入格式为:

7 A

A B

C A

D B

E B

C F

C G

其中,第一行表示结点数量n和根结点编号,第[2..n + 1]行每行两个字符u和v,表示树边。

import java.io.File;

import java.io.FileNotFoundException;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class Main {

    static final int maxn = 1000;

    

    int n;                // 树的结点个数

    char root;            // 树的根

    ListListCharacter ans = new ArrayListListCharacter();    // 结果,存放所有路径

    boolean[][] G = new boolean[maxn][maxn];                        // 邻接矩阵

    

    /**

     * dfs

     * @param u        当前到达的结点

     * @param fa    当前结点的父节点

     * @param path    根到fa的路径

     */

    void dfs(char u, char fa, ListCharacter path) {

        path.add(u);

        boolean leaf = true;            // u为叶子结点

        for(char v = ‘A’; v = ‘Z’; ++v) {

            if(G[u][v]  v != fa) {    // 邻接矩阵中有别的边

                leaf = false;            // u不是叶子结点

                dfs(v, u, path);

            }

        }

        if(leaf) {                        // u为叶子结点,将路径加入到答案

            ListCharacter pt = new ArrayListCharacter();

            for(Character c : path) pt.add(c);

            ans.add(pt);

        }

        

        path.remove(path.size() – 1);

    }

    

    public void go() throws FileNotFoundException

    {

        Scanner in = new Scanner(new File(“data.in”));

        String s;                        // 进行输入的处理时的临时变量

        n = in.nextInt();                // 获取结点个数

        s = in.next(); root = s.charAt(0);    // 获取根

        for(int i = 0; i  n – 1; ++i) {

            char u, v;

            s = in.next(); u = s.charAt(0);    // 获取边,并在邻接矩阵中做标记

            s = in.next(); v = s.charAt(0);

            G[u][v] = G[v][u] = true;

        }

        ListCharacter path = new ArrayListCharacter();

        dfs(root, ‘0’, path);

        for(int i = 0; i  ans.size(); ++i) {    // 输出答案

            for(Character c: ans.get(i))

                System.out.print(c);

            System.out.println();

        }

        

        in.close();

    }

    

    public static void main(String[] args) throws FileNotFoundException{

        new Main().go();

    }

}

在java中用extjs动态生成树怎么做?(树有5个节点,这5个节点的内容要从action中读取)

extjs 发送一个ajax请求到java的后台,通过action返回一个json对象或者前端能解析的数据就可以了。

同时树的结构在ajax请救时,需要设置同步模式,等待数据加载完成,再子节点。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月25日 10:21:08
下一篇 2024年3月25日 10:33:28

相关推荐

  • java高并发多线程,java高并发多线程处理

    JAVA中怎么处理高并发的情况? 1、高并发最直接的解决方案就是使用多线程,多线程的使用是一门学问一两句道不清建议去实战学习一下,推荐书目:《Java并发编程实战》。此外还要考虑数据库的优化和架构的调优。 2、避免使用错误的方式,尽量不用instanceof做条件判断。使用java中效率高的类,比如ArrayList比Vector性能好。 3、问题三:JAV…

    2024年5月10日
    2900
  • java模拟微信浏览器访问,微信浏览器调试页面js

    电脑怎么模拟手机微信 1、微信电脑版说白了,就是利用安卓模拟器在电脑上模拟安卓运行环境,从而让微信能够在PC电脑上使用,那么我们第一步肯定是要下载安卓模拟器这个软件。在百度上搜 BlueStacks,进入官网或者其他软件站下载。 2、打开微信之后跟手机上一样,点登录,输入微信账号和密码。登录成功就可以进入微信,不过也有可能会要求点击自己微信三个好友头像进行认…

    2024年5月10日
    2500
  • java写一个时钟,用java写时钟

    编写Java应用程序。首先,定义一个时钟类——Clock, 1、估计你是一个刚接触java的初学者吧,创建工程和类,题目的意思是,首先创建一个工程,工程名为(myproduct),接着在这个工程中创建包(edu.abc.test1)。 2、寻找java编程高手写一个闹钟的程序 编写时钟程序,要求画出时钟面板,时针,分针,秒针,可设定或解除闹钟时间,并提供闹钟…

    2024年5月10日
    3600
  • java创建ini文件,java新建int

    运行jar文件前,我需要设置java虚拟机虚拟内存 1、位置cygwin=false前。JAVA_OPTS= -server -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0下面是参数说明…

    2024年5月10日
    2700
  • java掷骰子,java掷骰子代码

    java掷骰子(急) 1、import java.util.Random;//(1)创建一个“骰子”类,命名为Dice。public class Dice { // 提示:初始化两个Dice对象。//(2)“骰子”类有两个属性:①最大值为固定值6,②点数为1-6之间的整数。 2、这游戏设计的,电脑哪有胜算啊,点数到了20就全都放弃了,永远也到不了100啊。 …

    2024年5月10日
    3900
  • javamybatis代码生成器,mybatis 代码生成

    Java程序员都用哪些idea插件?常用的? ,MyEclipse MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。 Grepconsole:自定义日志颜色,idea控制台可以彩色显示各种级别的log,安装完成后,在console中右键就能打开,可以设置不…

    2024年5月10日
    3400
  • 黑客代码学习好物文案生活,黑客代码视频教学

    好物推荐文案标题怎么写? 生活鸡零狗碎,梦想什么时候实现?手中的碗交给它,去追梦吧。起夜不用在摸黑。5小时3刷 它配得上华语最佳。和朋友一起喝酒,不谈工作只讲感情,微醺刚好。 百闻不如一试,喝过方知福乐好!性形体上要体态美,女性心理上更要自信美。东西南北中,好酒在张弓。仁德同修可得延年,延皓牙膏还你明眸皓齿。汽车有劳斯莱斯,冰淇淋有哈根达斯。 抖音好物分享简…

    2024年5月10日
    3200
  • java讲师怎么样,java讲师有前途吗

    做java培训讲师怎么样 1、去IT培训机构当讲师,还是很不错的。学习IT培训,推荐千锋教育,致力于打造中国互联网全产业链人才服务平台,总共开设13大热门课程,每月更新前沿技术,业内强师授课,只为高品质教学,教学大纲紧跟企业需求。 2、我觉得凭你的经验完全能胜任JAVA讲师这个岗位,关键是看这个职位给你的OFFER薪水是否符合你的预期,别指望这个职位能给你进…

    2024年5月10日
    3000
  • rpm卸载java,yum卸载java

    rpm-e卸载不掉 1、原因:操作错误导致。解决方法:如下参考:1.使用where命令查看mysql安装拷贝路径。2.检查与mysql一起安装的RPM包文件(RPM-qa|grepmysql)。3.模糊匹配删除安装包中的mysql文件(yum删除mysql)。 2、对于卸载rpm包,可以使用以下命令:rpm -e 包名。其中,-e表示卸载,包名是需要卸载的r…

    2024年5月10日
    3100
  • java中结果集已耗尽,结果集已关闭

    结果集已耗尽,急急急,在线等 看你这张图片 好像这段代码上面也执行了一次 查询 最好 要把上面的ResultSet 关闭 和 PreparedStatement 关闭 最好ResultSet不要调用同一个。 ,首先,找到安装目录里面的“setup.exe”文件,右键点击该文件。2,点击之后,会弹出菜单,在弹出的菜单中选择“以管理员身份运行此程序”一项。3,此…

    2024年5月10日
    3700

发表回复

登录后才能评论



关注微信