用java在二叉树T中,编写一个非递归程序输出该树的所有叶子结点。
答案:1 悬赏:20 手机版
解决时间 2021-04-02 07:06
- 提问者网友:龅牙恐龙妹
- 2021-04-01 09:49
用java在二叉树T中,编写一个非递归程序输出该树的所有叶子结点。
最佳答案
- 五星知识达人网友:春色三分
- 2021-04-01 10:50
用循环呀,判断此节点是否有子节点,有就打印追问具体代码呢追答这是我以前的作业,题目大概是要求输入一个路径,打印出其下所有文件和目录及子目录,根你说的相差不大
package MyTree;
import java.io.*;
import java.util.*;
public class MyTree {
// 树形
private Scanner scan;
private File[]file_arr;; // 存储当前抽象路径下的文件或目录
public void menu(String[] s)
{
file_arr = new File[s.length];
for(int num = 0;num < s.length;num ++)
{
file_arr[num] = new File(s[num]);
System.out.println((num + 1) + " "+file_arr[num].getPath());
}
if(file_arr[0].getPath().equals("C:\\"))
{
// 首次打印的是文件系统根,不能返回上级目录
System.out.println("\n请选择: ");
getNum(1);
}
else
{
System.out.println("\n请选择,按 0 返回上级目录: ");
getNum(0);
}
}
public void getNum(int num)
{
try {
int userInput = 0;
scan = new Scanner(System.in);
userInput = Integer.parseInt(scan.next());
if(userInput > file_arr.length || userInput < num)
{
System.out.println("请正确输入 :");
getNum(num);
}
operateList(userInput);
} catch (Exception e) {
System.out.println(e.toString()+"输入有误 !!!");
}
}
public void operateList(int userInput)
{
// 操作列表
MyStream ms = new MyStream();
if(userInput == 0)
{ File f = file_arr[userInput].getParentFile().getParentFile();
if(f.getPath().lastIndexOf("\\") == f.getPath().length() - 1)
{
System.out.println("不能返回根目录 !!!");
}
else
{
ms.Open(f);
}
}
ms.Open(file_arr[userInput -1 ]);
}
}追问还是有不少差别的,能不能帮帮忙按照我的题帮我编一下,拜托了追答你是想要swing的?还是IO的?
package MyTree;
import java.io.*;
import java.util.*;
public class MyTree {
// 树形
private Scanner scan;
private File[]file_arr;; // 存储当前抽象路径下的文件或目录
public void menu(String[] s)
{
file_arr = new File[s.length];
for(int num = 0;num < s.length;num ++)
{
file_arr[num] = new File(s[num]);
System.out.println((num + 1) + " "+file_arr[num].getPath());
}
if(file_arr[0].getPath().equals("C:\\"))
{
// 首次打印的是文件系统根,不能返回上级目录
System.out.println("\n请选择: ");
getNum(1);
}
else
{
System.out.println("\n请选择,按 0 返回上级目录: ");
getNum(0);
}
}
public void getNum(int num)
{
try {
int userInput = 0;
scan = new Scanner(System.in);
userInput = Integer.parseInt(scan.next());
if(userInput > file_arr.length || userInput < num)
{
System.out.println("请正确输入 :");
getNum(num);
}
operateList(userInput);
} catch (Exception e) {
System.out.println(e.toString()+"输入有误 !!!");
}
}
public void operateList(int userInput)
{
// 操作列表
MyStream ms = new MyStream();
if(userInput == 0)
{ File f = file_arr[userInput].getParentFile().getParentFile();
if(f.getPath().lastIndexOf("\\") == f.getPath().length() - 1)
{
System.out.println("不能返回根目录 !!!");
}
else
{
ms.Open(f);
}
}
ms.Open(file_arr[userInput -1 ]);
}
}追问还是有不少差别的,能不能帮帮忙按照我的题帮我编一下,拜托了追答你是想要swing的?还是IO的?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯