1、如何在树的节点结构中存储浮点数???
2、如果我有一棵树:
                                1
        0.5                    0.3                 0.2
    0.2     0.8           0.1  0.3  0.6       0.5  0.3  0.2
0.3   0.7#0.6   0.4#   0.5  0.5          0.2  0.6  0.2
  这是部分树  由于没有办法画图  大家将就一下下
  我的目的是将最底层节点中的内容直接乘上去
  比如说:第一个最底层节点中  0.3*0.2*0.5*1    第二个  0.7*0.2*0.5*1 等等.....
  并且把每一个结果放到一个数组中,这个数组有n个元素,n是最底层节点的总数
  希望能给一个比较详细的程序,

解决方案 »

  1.   

    1. http://community.csdn.net/Expert/topic/4666/4666766.xml?temp=.44869632. 你从最底层的叶子节点往上GetParentItem(),直到GetParentItem() == GetRootItem()
      

  2.   

    用数组每个分支都要建立一个数组了,太浪费。直接在节点中存储:SetItemData((DWORD)youvalue)。如果是4个字节的float,可以这么用,如果是8个字节的double,需要存储指针。
      

  3.   

    书上说SetItemData中设置的是32位的无符号整数值啊,如果强制类型转换,我的数字就都是0了。to  coolzdp:向你说的那样,我如何直接得到最底层的每个节点呢???
      

  4.   

    当然是递归遍历了HTREEITEM hItem = GetRootItem();
    GetAllLeafItem(hItem);void CMyTreeCtrl::GetAllLeafItem(HTREEITEM hItem)
    {
    HTREEITEM hChildItem;
    HTREEITEM hNextItem = hItem; while (hNextItem != NULL)
    {
    hChildItem = GetChildItem(hNextItem);

    if (hChildItem != NULL)
    {
    GetAllLeafItem(hChildItem);
    }
    else
    {
    //hChildItem就是一个叶子节点
    }

    hNextItem = GetNextItem(hNextItem,TVGN_NEXT);
    }
    }
      

  5.   

    else
    {
    //hChildItem就是一个叶子节点
    float w=GetItemData(hChildItem);
    while(GetParentItem(hChildItem)!=hItem)
    {
        hTempItem=hChildItem;
        hTempItem=GetParentItem(hTempItem);
        w*=GetItemData(hTempItem);
    //请问这个w的值 我怎样才能由这个成员函数返回到主函数中去呢???????
    }
    }
      

  6.   

    保存到vector里typedef struct tagLeafnodeResult
    {
    float w;
    HTREEITEM hItem;
    }LeafnodeResult;vector<LeafnodeResult>  m_vResult;w*=GetItemData(hTempItem);
    LeafnodeResult result;
    result.w = w;
    result.hItem = hChildItem;
    m_vResult.push_back(result);
    //请问这个w的值 我怎样才能由这个成员函数返回到主函数中去呢???????
      

  7.   

    我觉得else
    {
    //hChildItem就是一个叶子节点
    }
    中 应该是hNextItem 才是叶子节点阿,因为hChildItem已经是空的啦 
    对吧??
    还有以前没有接触过vector类型,请教一下!!!
    这个结构LeafnodeResult和vector应该在放在什么地方呢??是放在主函数调用子函数GetAllLeafItem前呢,还是就放在这个子函数GetAllLeafItem中呢??