先序人机交互创建树

package seven;

import java.util.Scanner;

/*
 * 需求分析:
 * 需求是先序生成一棵树.每一个节点都是用户输入的,
 * 当到第几个节点时,电脑会提示用户输入
 * 思路:
 * 想利用递归来实现,递归结束的条件是当用户输入的是null时,结束当前树的递归
 */
public class FirstCreate
{
	public static void main(String[] args)
	{
		FirstCreate f =new FirstCreate();
		Node node=f.firstcreate();
		f.firstshow(node);
	}
	Scanner in =new Scanner(System.in);

	public Node firstcreate()
	{
		Node root;
		String data;
		System.out.println("根节点是:");
		data=in.next();
		root=new Node(data);
		firstcreate(data+"左节点", root,true);
		firstcreate(data+"右节点", root,false);
		return root;
	}
	public void firstcreate(String str,Node root,boolean b)
	{
		String data;
		System.out.println(str+"节点是:");
		data=in.next();
		if(data.equals("null"))
		{
			return;
		}
		Node node=new Node(data);
		if(b)
		{
			root.lchild=node;
		}
		else
		{
			root.rchild=node;
		}
		
		firstcreate(data+"左节点",node,true);
		firstcreate(data+"右节点",node,false);
	}
	//先序遍历
	public void firstshow(Node node)
	{
		if(node!=null)
		{
			System.out.print(node.data+" ");				
			firstshow(node.lchild);
			firstshow(node.rchild);
		}
	}
}

发布了133 篇原创文章 · 获赞 37 · 访问量 4743

猜你喜欢

转载自blog.csdn.net/qq_43416157/article/details/104233433