📄 f0a8c09fa33d001d192abbead0da6110
字号:
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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -