如何将Treeview存成数据结构中的二叉数形式。
  希望能有具体的实现过程,最好能有源代码注:每个节点最多有2个孩子,就象通常意义上的二叉树那样。

解决方案 »

  1.   

    就是Treeview的结构转成二叉链的形式,象以下的那样,也没有跟数据库连接什么的
    type
      TreeNode=^node;
      node=record
        data:string;
        lch,rch:TreeNode;
      end;
      

  2.   

    1。TreeView上的每一个节点对应一个TreeNode,lch和rch初始为空
    2。遍历树,如果某个节点之后有兄弟节点,那么这个节点的rch指向该兄弟节点;如果某个节点有子节点,那么这个节点的lch指向它的第一个子节点
      

  3.   

    给你个思路好了
    1.建一个2维树组
      为表格形式  a[2,n]
     -------|-------
     |parent| 数据  |
     -------|-------
    2.通过递归遍历并存放每个节点的的父节点和其数据,根节点的parent为空
    这样以后你就可以再画出树了
      

  4.   

     to :iamduo
      双击MasterBand 修改那个行数。
    rowcount:哪个是控制显示有多少行,好象不行
    -----------
    procedure TForm1.Button15Click(Sender: TObject); 
    var 
      mynode:TTreenode; 
        begin 
          treeview1.Items.BeginUpdate; 
          AdoQuery1.Close ; 
          AdoQuery1.SQL.Clear ; 
          AdoQuery1.SQL.Add( 'select * from department  '); 
          AdoQuery1.Open ; 
          while not adoquery1.Eof do 
             begin 
                  mynode:=treeview1.Items.Add(nil,adoquery1.fieldbyname(  'dept_code ').AsString); 
                  with adoquery2 do 
                  begin 
                          close; 
                          sql.Clear; 
                          sql.Add(  'select * from computer where department=  ' ' '+adoquery1.fieldbyname(  'dept_code ').AsString+ ' ' '  '); 
                          open; 
                  end; 
                  while not adoquery2.Eof do 
                      begin 
                        Treeview1.Items.AddChild(mynode,adoquery2.fieldbyname(  'computer_name ').AsString); 
                        adoquery2.Next; 
                      end; 
              adoquery1.Next; 
             end; 
                treeview1.Items.EndUpdate; 
                treeview1.Update; 
        end; 
    end. 
    测试通过,,仿照一下,,应该没有问题
      

  5.   

    department 表 
    dept_code deptname 
    1         财务部 
    2         行政部 computer 表 
    computer_name computer_user department ip_address 
    xyl001        张三             1          192.168.1.101 
    xyl002        李四             2          192.168.1.102 
      

  6.   

    我做的都跟数据库没有关系....
       说清楚点就是一个已经建好的Treeview,通过遍历Treeview建类似的二叉链结构
    type 
      TreeNode=^node; 
      node=record 
        data:string; 
        lch,rch:TreeNode; 
      end;
     不过我不会实现..