java两个程序组合在一起,应该比较简单。菜鸟求解。
一个程序里我java读取了个txt数据文件。publicclassRead{publicstaticvoidmain(String[]args){try{Scanneri...
一个程序里我java读取了个txt数据文件。
public class Read {
public static void main(String[] args) {
try {
Scanner in = new Scanner(new File("d:/b.txt"));
while (in.hasNextLine()) {
String str = in.nextLine();
String[] b = str.split("[\\p{Space}]+");
}
txt文件:
1 2 45° 100 1 (1,1) 甲
2 3 90° 200 2 (2,2) 乙
2 4 180° 250 3 (2,3) 丙
3 2 270° 200 4 (0,2) 丁
另外一个程序是个多叉树遍历,其中有部分是定义一个树也就是lists部分
public class tree {
private List<String[]> lists = new ArrayList<String[]>();
public tree(){
lists.add(new String[]{"0","1"});
lists.add(new String[]{"0","2"});
lists.add(new String[]{"0","3"});
lists.add(new String[]{"3","4"});
lists.add(new String[]{"3","5"});
lists.add(new String[]{"3","6"});
lists.add(new String[]{"6","7"});
lists.add(new String[]{"6","8"});
}
public boolean treeA(String s,String sysos){
boolean f = true;
for (int j = 0; j < lists.size(); j++) {
String[] str = lists.get(j);
if(str[0].equals(s)){
if(treeA(str[1],sysos+s)){
f = false;
}
}
}
if(f){
String c = sysos+s;
System.out.println(c);
}
return f;
}
public static void main(String[] args){
tree t = new tree();
t.treeA("3","");
}
}
现在就是想把那个树的lists换成(b[0],b[1]),想知道这两个程序如何联系起来,tree如何调用读取的txt数据文件b。 展开
public class Read {
public static void main(String[] args) {
try {
Scanner in = new Scanner(new File("d:/b.txt"));
while (in.hasNextLine()) {
String str = in.nextLine();
String[] b = str.split("[\\p{Space}]+");
}
txt文件:
1 2 45° 100 1 (1,1) 甲
2 3 90° 200 2 (2,2) 乙
2 4 180° 250 3 (2,3) 丙
3 2 270° 200 4 (0,2) 丁
另外一个程序是个多叉树遍历,其中有部分是定义一个树也就是lists部分
public class tree {
private List<String[]> lists = new ArrayList<String[]>();
public tree(){
lists.add(new String[]{"0","1"});
lists.add(new String[]{"0","2"});
lists.add(new String[]{"0","3"});
lists.add(new String[]{"3","4"});
lists.add(new String[]{"3","5"});
lists.add(new String[]{"3","6"});
lists.add(new String[]{"6","7"});
lists.add(new String[]{"6","8"});
}
public boolean treeA(String s,String sysos){
boolean f = true;
for (int j = 0; j < lists.size(); j++) {
String[] str = lists.get(j);
if(str[0].equals(s)){
if(treeA(str[1],sysos+s)){
f = false;
}
}
}
if(f){
String c = sysos+s;
System.out.println(c);
}
return f;
}
public static void main(String[] args){
tree t = new tree();
t.treeA("3","");
}
}
现在就是想把那个树的lists换成(b[0],b[1]),想知道这两个程序如何联系起来,tree如何调用读取的txt数据文件b。 展开
1个回答
展开全部
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class tree {
private List<String[]> lists = new ArrayList<String[]>();
public tree(String[] str){
lists.add(str);
}
public boolean treeA(String s,String sysos){
boolean f = true;
for (int j = 0; j < lists.size(); j++) {
String[] str = lists.get(j);
if(str[0].equals(s)){
if(treeA(str[1],sysos+s)){
f = false;
}
}
}
if(f){
String c = sysos+s;
System.out.println(c);
}
return f;
}
public static void main(String[] args){
File file = new File("d:\\b.txt");
Scanner in = null;
String[] b = null;
try{
in = new Scanner(file);
}catch(FileNotFoundException e){
e.printStackTrace();
}
while (in.hasNextLine()) {
String str = in.nextLine();
b = str.split("[\\p{Space}]+");
}
for(int i=0;i<b.length;i++)
System.out.println("b["+i+"]="+b[i]);
tree t = new tree(b);
t.treeA("2","");
}
}
追问
程序运行后不能正确显示遍历路径。对于t.tree("x","");无论x取什么, System.out.println("b["+i+"]="+b[i]);输出的都是txt文件最后一行,当且仅当x=3时,System.out.println(c);才能正确显示遍历路径32,其他的数都是直接输出。看看是不是程序哪里有什么问题呀
追答
这个逻辑方面的你自己钻研吧。。我只是把你两段代码给你理清了。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询