⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 binarytreechange.java

📁 能把一个带空位置的二叉树前序序列流转换成一棵二叉树,空位置用“@”表示,其中包含图形界面(java实现)
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class TreeNode
{
	public char data;
	public TreeNode father,left, right;
	public TreeNode(char d)  { data=d;left=right=null; }
}
class BinaryTree
{
	private String order,inorder;
	private int i=0,j=0;
	private char in[]=new char[40];
	private TreeNode root;
	public BinaryTree(String s)
	{
		order=s;
		if(order.length()>0)
			root=creattree();
	}
	
	public TreeNode creattree()
	{
		TreeNode p=null;
		char str=order.charAt(i);
		i++;
		if(str!='@')
			{
				p=new TreeNode(str);
				p.left=creattree();
				p.right=creattree();
			}
		return p;
	}
	public void in_order(TreeNode p)
	{
		if(p!=null)
		{
			in_order(p.left);
			in[j]=p.data;j++;
			in_order(p.right);
		}
	}
	public String pre_to_in(String order)
	{
		if(root!=null) in_order(root);
		inorder=new String(in);	
		return inorder;		
	}
}
class MyWindow extends JFrame 
{
	JTextField pretext,intext;
	JLabel prelabel,inlabel;
	JButton change;
	MyWindow(String s)
	{
		super(s);
		setBounds(200,200,500,300);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pretext=new JTextField(40);
		intext=new JTextField(40);
		change=new JButton("转换并输出二叉树的中序遍历序列");
		Container con=this.getContentPane();
		con.setLayout(new FlowLayout());
		con.add(new JLabel("请输入带空格的二叉树前序序列(以“@”为空)"));
		con.add(pretext);
		con.add(change);
		con.add(new JLabel("二叉树的中序遍历序列输出"));
		con.add(intext);
		con.validate();
		change.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
				{
					String c=pretext.getText();
					try
					{
						BinaryTree t=new BinaryTree(c);
						String s=t.pre_to_in(c);
						intext.setText(s);
					}catch (StringIndexOutOfBoundsException q)
						{
						intext.setText("输入方式有误!!请重新确认后输入");
						}
				}
		}
		);
	}
}
public class BinaryTreeChange
{
	public static void main(String args[])
	{
			MyWindow win=new MyWindow("数据结构实验2-由先序遍历得到二叉树再得到中序遍历-040824229-赵禹晶");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -