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

📄 f057a971a33d001d192abbead0da6110

📁 动态演绎2叉树的原理。演示二叉树的前序遍历过程。 演示二叉树的中序遍历过程。 演示二叉树的后序遍历过程。
💻
📖 第 1 页 / 共 5 页
字号:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;

import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;




//Jul 2, 20075:10:01 PM
public class CreateBT
{
	private Text pleaseGiveNodeText_32;
	private Text pleaseGiveNodeText_31;
	private Text text;
	public String sum="";
	public class BinaryTree
	{
		private Node root;
		BinaryTree()
		{
			root= null;
		}
	    public Node getRoot()
	    {
	    	return root;
	    }
	    
	    
		public void insert(String str, String position, boolean LOR,Text name)
		{
			Node current = root;
			if (root == null)
			{
				root =new Node(str);
				root.setText(name);
			}
			else
			{
				for (int i = 0; i < position.length(); i++)
				{
					if ( position.charAt(i)=='0')
						current= current.leftChild;
					if ( position.charAt(i)=='1')
						current= current.rightChild;
				}
				if (LOR==false)
				{
					current.leftChild= new Node(str);
					current.leftChild.setText(name);
				}
				
			    if (LOR==true)
			    {
			    	current.rightChild=new Node(str);
			    	current.rightChild.setText(name);
			    }
			}
		}		
}
	
	class inorderTask
	{
		public String sum;
		Node root=null;
		CreateBT bt;
		public inorderTask(Node pr,CreateBT b)
		{
			root=pr;
			bt=b;
			sum="The result of Inorder Traversal:  ";
		}
		private Node p;
		public void setProbe(Node n)
		{
			p=n;
		}
		
		private void changeColorG()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){p.t.setBackground(p.t.getDisplay().getSystemColor(SWT.COLOR_GREEN));
			}
			});
		}
		private void changeColorR()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){p.t.setBackground(p.t.getDisplay().getSystemColor(SWT.COLOR_RED));
			}
			});
		}
		
		private void updateSum()
		{
			Display.getDefault().asyncExec(new Runnable(){
			public void run(){bt.text.setText(sum);
			}
			});
		}
		public void inorderTraversal(Node probe)
		{
			if (probe!=null)
			{
				try
				{
					Thread.sleep(1000);
				}
				catch(InterruptedException e){}
				setProbe(probe);
				changeColorG();

			    inorderTraversal(probe.leftChild);
			    
			    try
				{
					Thread.sleep(1000);
				}
				catch(InterruptedException e){}
			    setProbe(probe);
				changeColorR();
				updateSum();
			    sum=sum+probe.getData()+" ";
				
			    inorderTraversal(probe.rightChild);
			}
		}
		private void enableButton()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run()
				{
					bt.c1.setEnabled(true);
					bt.c2.setEnabled(true);
					bt.c3.setEnabled(true);
					bt.c4.setEnabled(true);
				}
			});
		}
		public void start()
		{
			inorderTraversal(root);
			enableButton();
		}
	}

	class preorderTask
	{
		public String sum="";
		CreateBT bt;
		Node root=null;
		public preorderTask(Node pr,CreateBT b)
		{
			root=pr;
			bt=b;
			sum="The result of Preorder Traversal:  ";
		}
		private Node p;
		public void setProbe(Node n)
		{
			p=n;
		}
		
		private void changeColorG()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){p.t.setBackground(p.t.getDisplay().getSystemColor(SWT.COLOR_GREEN));
			}
			});
		}
		private void changeColorR()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){p.t.setBackground(p.t.getDisplay().getSystemColor(SWT.COLOR_RED));
			}
			});
		}
		
		private void updateSum()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){bt.text.setText(sum);
			}
			});
		}
		
		public void preorderTraversal(Node probe)
		{
			if (probe!=null)
			{
				try
				{
					Thread.sleep(1000);
				}
				catch(InterruptedException e){}
				setProbe(probe);
				changeColorG();
				
			    sum=sum+probe.getData()+" ";
			    try
				{
					Thread.sleep(1000);
				}
				catch(InterruptedException e){}
				changeColorR();
			    updateSum();
				
				preorderTraversal(probe.leftChild);

			    preorderTraversal(probe.rightChild);
			}
		}	
		private void enableButton()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run()
				{
					bt.c1.setEnabled(true);
					bt.c2.setEnabled(true);
					bt.c3.setEnabled(true);
					bt.c4.setEnabled(true);
				}
			});
		}
		public void start()
		{
			preorderTraversal(root);
			enableButton();
		}
	}

	class postorderTask
	{
		public String sum="";
		Node root=null;
		CreateBT bt;
		public postorderTask(Node pr,CreateBT b)
		{
			root=pr;
			bt=b;
			sum="The result of Postorder Traversal:  ";
		}
		private Node p;
		public void setProbe(Node n)
		{
			p=n;
		}
		
		private void changeColorG()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){p.t.setBackground(p.t.getDisplay().getSystemColor(SWT.COLOR_GREEN));
			}
			});
		}
		private void changeColorR()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){p.t.setBackground(p.t.getDisplay().getSystemColor(SWT.COLOR_RED));
			}
			});
		}
		
		private void updateSum()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run(){bt.text.setText(sum);
			}
			});
		}
		
		public void postorderTraversal(Node probe)
		{
			if (probe!=null)
			{
				try
				{
					Thread.sleep(1000);
				}
				catch(InterruptedException e){}
				setProbe(probe);
				changeColorG();
			    
				postorderTraversal(probe.leftChild);
				
			    postorderTraversal(probe.rightChild);
			    
			    try
				{
					Thread.sleep(1000);
				}
				catch(InterruptedException e){}
				setProbe(probe);
				changeColorR();
				sum=sum+probe.getData()+" ";
			    updateSum();
			}
		}	
		private void enableButton()
		{
			Display.getDefault().asyncExec(new Runnable(){
				public void run()
				{
					bt.c1.setEnabled(true);
					bt.c2.setEnabled(true);
					bt.c3.setEnabled(true);
					bt.c4.setEnabled(true);
				}
			});
		}
		public void start()
		{
			postorderTraversal(root);
			enableButton();
		}
	}
	
	
	private Text pleaseGiveNodeText_30;
	private Text pleaseGiveNodeText_29;
	private Text pleaseGiveNodeText_28;
	private Text pleaseGiveNodeText_27;
	private Text pleaseGiveNodeText_26;
	private Text pleaseGiveNodeText_25;
	private Text pleaseGiveNodeText_24;
	private Text pleaseGiveNodeText_23;
	private Text pleaseGiveNodeText_22;
	private Text pleaseGiveNodeText_21;
	private Text pleaseGiveNodeText_20;
	private Text pleaseGiveNodeText_19;
	private Text pleaseGiveNodeText_18;
	private Text pleaseGiveNodeText_17;
	private Text pleaseGiveNodeText_16;
	private Text pleaseGiveNodeText_15;
	private Text pleaseGiveNodeText_14;
	private Text pleaseGiveNodeText_13;
	private Text pleaseGiveNodeText_12;
	private Text pleaseGiveNodeText_11;
	private Text pleaseGiveNodeText_10;
	private Text pleaseGiveNodeText_9;
	private Text pleaseGiveNodeText_8;
	private Text pleaseGiveNodeText_7;
	private Text pleaseGiveNodeText_6;
	private Text pleaseGiveNodeText_5;
	private Text pleaseGiveNodeText_4;
	private Text pleaseGiveNodeText_3;
	private Text pleaseGiveNodeText_1;
	private Text pleaseGiveNodeText_2;
	private Text pleaseGiveNodeText;
	public Button c1;
	public Button c2;
	public Button c3;
	public Button c4;
	protected Shell shell;
	
	private BinaryTree BT= new BinaryTree();
	public int TrackingNum=0;
	/**
	 * Launch the application
	 * @param args
	 */
	public static void main()
	{
		try
		{
			CreateBT window = new CreateBT();
			window.open();
		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}

	/**
	 * Open the window
	 */
	public void open()
	{
		final Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed())
		{
			if (!display.readAndDispatch())
				display.sleep();
		}
	}
	/**
	 * Create contents of the window
	 */
	protected void createContents()
	{
		shell = new Shell(SWT.MIN | SWT.CLOSE | SWT.BORDER);
		shell.setSize(800, 543);
		shell.setText("Create A BinaryTree(5 Levels Tops)");

⌨️ 快捷键说明

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