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

📄 draw_tree.java

📁 基于图形的二叉树工作演示程序
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import myBag.*;
class Draw_TreeFrame extends JFrame{
  int width=650,height=500;
  public Draw_TreeFrame(){
    setTitle("Draw_Tree");
    Container contentPane=getContentPane();
    contentPane.add(new Draw_TreePanel());
    addWindowListener(new WL());               //添加窗口事件监听器
    setSize(width,height);
  }
  class WL extends WindowAdapter{                //设置窗口事件监听器
    public void windowClosing(WindowEvent e){ System.exit(0);}
  }
  class Draw_TreePanel extends JPanel{
    public void paintComponent(Graphics g){
      super.paintComponent(g);
      int e[]={37, 24, 42, 7, 32, 40, 42, 2, 0, 0, 0, 0, 0, 0,120};
      myVal array[]=new myVal[15];
      for(int i=0;i<15;i++) array[i].setIT(new IElem(e[i]));
      draw_Tree(g, array);
    }
  
    private void draw_Tree(Graphics g,myVal[] array){
      Code code[]=new Code[15];
      
      code[0]=new Code(300,50);

      code[1]=new Code(150,100);    code[2]=new Code(450,100);

      code[3]=new Code(75,150);    code[4]=new Code(225,150);
      code[5]=new Code(375,150);   code[6]=new Code(525,150);

      code[7]=new Code(38,200);    code[8]=new Code(112,200);
      code[9]=new Code(188,200);   code[10]=new Code(262,200);
      code[11]=new Code(338,200);  code[12]=new Code(412,200);
      code[13]=new Code(488,200);  code[14]=new Code(562,200);

      for(int k=0; k<15; k++){
        if(array[k].getIT().key()==0) k++;      //a中元素关键码为0,不画图
        else{
          g.setColor(Color.black);
          g.drawOval(code[k].getX(),code[k].getY(),20,20);    //画圆
          g.setColor(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));
          g.fillOval(code[k].getX(),code[k].getY(),20,20);    //填充圆
          g.setColor(Color.black);
          g.drawString(String.valueOf(array[k].getIT().key()),code[k].getX(),code[k].getY()+13); //标注元素关键码值
        }
      }
      for(int j=0; j<=6; j++){    
        if(array[2*j+1].getIT().key()!=0){                        //有左子
          g.setColor(Color.black);
          g.drawLine(code[j].getX()+6,code[j].getY()+20,code[2*j+1].getX()+6,code[2*j+1].getY());
        }
        if(array[2*j+2].getIT().key()!=0){                        //有右子
          g.setColor(Color.black);
          g.drawLine(code[j].getX()+6,code[j].getY()+20,code[2*j+2].getX()+6,code[2*j+2].getY());
        }
      }
    }
  }
}

public class Draw_Tree{
  public static void main(String[]array){
    Draw_TreeFrame f=new Draw_TreeFrame();
    f.setVisible(true);
  }
}

⌨️ 快捷键说明

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