无法将 inOrderTraversal 方法的内容放入文件中

Trouble putting contents of inOrderTraversal method into a file

我一直在尝试获取它,以便 returns 方法改为一个 String,但它会抛出一堆错误。我需要将 inOrderTraversal 方法的内容放入文件中或以某种方式存储它,以便我可以将其写入文件。如果有人可以帮助我,我将不胜感激!谢谢!!


public class BinaryTree {

    // Tree: simplest possible binary search tree
    private Node root; // hidden root node

    // inorderTraversal: need because root is hidden
    public void inorderTraversal() {
        inorderT(root);
    }

    // inorderT: recursive function that does the work
    private void inorderT(Node node) {
        if (node != null) {
            inorderT(node.left);
            System.out.println(node.data+" ");
            //node.data = node.data+" ";
            inorderT(node.right);
    }
}
========================================================================================================
public static void main(String ... args) throws IOException {

        System.out.println("Starting");
        File file = new File("C:\Users\Marlene\Workspace\BinaryTree\src\com\company\unsorteddict.txt");
        Scanner scan = new Scanner(file);

        //Creation of linked list and line variable
        String fileContents = "";
        LinkedList<String> linkedList = new LinkedList<>();
        BinaryTree tree = new BinaryTree();
        int lineNum = 0;

        //Writing contents into a file
        PrintWriter writer = new PrintWriter("C:\Users\Marlene\Workspace\BinaryTree\src\com\company\sorteddict.txt", "UTF-8");

        while(scan.hasNextLine()){
            fileContents = scan.nextLine();
            lineNum++;
            int x = 0;
            if (linkedList.size() == 0) {
                linkedList.add(0, fileContents);
            }
            else {
                for (int i = 0; i < linkedList.size(); i++) {
                    tree.insert(fileContents);
                }
            }
        }

        tree.inorderTraversal(); //NEED TO PUT THIS LINE INTO A FILE

        System.out.println("Ended");
}

您可以将writer对象传递给inorderTraversal()方法,也可以传递给inorderT()方法,并将中序遍历节点数据写入文件。

public class BinaryTree {

    // Tree: simplest possible binary search tree
    private Node root; // hidden root node

    // inorderTraversal: need because root is hidden
    public void inorderTraversal(PrintWriter writer) {
        inorderT(root, writer);
    }

    // inorderT: recursive function that does the work
    private void inorderT(Node node, PrintWriter writer) {
        if (node != null) {
            inorderT(node.left, writer);
            System.out.println(node.data+" ");
            //node.data = node.data+" ";
            writer.println(node.data+" ");    // Here, write to the file.
            inorderT(node.right, writer);
    }
}
public static void main(String ... args) throws IOException {

        System.out.println("Starting");
        File file = new File("C:\Users\Marlene\Workspace\BinaryTree\src\com\company\unsorteddict.txt");
        Scanner scan = new Scanner(file);

        //Creation of linked list and line variable
        String fileContents = "";
        LinkedList<String> linkedList = new LinkedList<>();
        BinaryTree tree = new BinaryTree();
        int lineNum = 0;

        //Writing contents into a file
        PrintWriter writer = new PrintWriter("C:\Users\Marlene\Workspace\BinaryTree\src\com\company\sorteddict.txt", "UTF-8");

        while(scan.hasNextLine()){
            fileContents = scan.nextLine();
            lineNum++;
            int x = 0;
            if (linkedList.size() == 0) {
                linkedList.add(0, fileContents);
            }
            else {
                for (int i = 0; i < linkedList.size(); i++) {
                    tree.insert(fileContents);
                }
            }
        }

        tree.inorderTraversal(writer); //NEED TO PUT THIS LINE INTO A FILE

        System.out.println("Ended");
}