24小时热门版块排行榜    

查看: 2281  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

rainbowguy

银虫 (正式写手)


[交流] 【求助】关于未知树状结构存储的问题?请大虾指教!

动态变化演变的数值,这些数值的动态演化、变化过程符合树状的发展,因此我想用树状结构存储这些动态变化演变的数值。但是无法预知整棵树的变化情况,包括树到底有多少层,父树结点有多少个子树结点(但子树结点<8)等。
我的问题是:
(1)这个动态变化、演变的数值(与时间步长有关系)怎样用树状结构实时存储?
(2)如果无法用树状结构去实时存储这些数值,那有没有更好的一种方式去存储这些数值?注:这些数值的演变、动态变化是符合树结构的演化的,即父生子、子生孙的演变关系。

请大虾指教!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


rainbowguy(金币+40): 2011-04-06 11:56:33
引用回帖:
Originally posted by rainbowguy at 2011-04-03 18:20:42:
可能是我的表述有问题,没有说清楚。
举个例子,比如一个符合树状结构的系列数值(如身高),这些数值对象具有这种父子结构,但这些数值(身高)具体是多少是提前未知的,当然我们也不可能提前知道。一个父( ...

CODE:
typedef struct _NODE{
        int height;
        int age;
        bool isAlive;        //是否活着
        int childNum;        //当前孩子数量
        struct _node* pchild[8];
}NODE, PNODE;

PNODE root = new NODE;

...        //初始化root的一些语句,pchild[i]==NULL则表示没有孩子

int year = 0;

while(year<设定值){                                //仿真退出的条件,可以是其它
        traverse(root, year);                //从root开始,对整棵树的节点进行遍历
        year++;
}

...        //这个时候,经过year的整棵树就出来了


整个算法的关键自然是在树的遍历函数void traverse(PNODE r, int year)上,这个随便一本算法书或者数据结构书都应该有讲的...随手写个例子吧:

void traverse(PNODE r, int year){
        if(r == NULL) return;
       
        r->height = f1(year); //身高是year的函数
        r->age = f2(year);     //年龄是year的函数
        r->isAlive = f3(year); //是否活着也是year的函数
       
        for(int i=0; i<8; i++){ //遍历孩子
                if(f4(r->height, year)){ //是否在year生孩子?按你说的,跟身高有关系
                        r->pchild[r->childNum] = new NODE;
                       
                        r->pchild[r->childNum]->height = f5(r->height); //初始化孩子状态
                        ...
                       
                        r->childNum++;
                }
               
                traverse(r->pchild[i], year);        //注意!递归深入同理处理孩子节点
        }
}

上面的f1()到f4()这些函数,按照一般仿真习惯,自然里面包含一些随机函数,就不多说了。另外,上面的程序属于“深度优先遍历”的方法。

总而言之,楼主需要拿一本数据结构的书,好好复习一下=,=

[ Last edited by sudo on 2011-4-3 at 19:33 ]
11楼2011-04-03 19:22:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

sudo

木虫 (正式写手)


★ ★
微尘、梦想(金币+2): 谢谢回复…… 2011-04-03 17:55:23
树状结构显然可以存储啊,无非就是一堆指针指来指去...
2楼2011-04-02 16:45:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rainbowguy

银虫 (正式写手)


引用回帖:
Originally posted by sudo at 2011-04-02 16:45:40:
树状结构显然可以存储啊,无非就是一堆指针指来指去...

大虾没明白我的意思,这是动态变化的树,你不知道树的具体结构,但是要存储它,怎么办?
3楼2011-04-02 17:14:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


引用回帖:
Originally posted by rainbowguy at 2011-04-02 17:14:00:
大虾没明白我的意思,这是动态变化的树,你不知道树的具体结构,但是要存储它,怎么办?

呃,虽然树的具体结构不知道,不过,每个节点的结构可以定下来(根据你的描述,不知道我理解是否正确)

struct node{
    int value;
    struct node* pchild[8];
}

然后像创建树根节点,插入子节点什么的,都可以用树的相关算法实现啊...

不知道你的具体需求是什么?
4楼2011-04-02 17:24:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[教师之家] 某top大学教授说“能够在市场中兑现的能力才是真能力”无比同意! +3 zju2000 2026-09-26 3/150 2026-09-27 16:26 by lala1008
[硕博家园] 上海工程技术大学 激光智能制造课题组 2027级博士研究生招生 +5 oxidpl 2026-09-20 7/350 2026-09-27 10:43 by Equinoxhua
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 ViqFlLSxHDGt 2026-09-26 3/150 2026-09-27 10:42 by 4IW0sJvtEqX8
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 ViqFlLSxHDGt 2026-09-26 3/150 2026-09-27 10:26 by 4IW0sJvtEqX8
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 ViqFlLSxHDGt 2026-09-26 3/150 2026-09-27 10:21 by 4IW0sJvtEqX8
[考博] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 ViqFlLSxHDGt 2026-09-26 3/150 2026-09-27 10:03 by 4IW0sJvtEqX8
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 oeyPlfmMUpOC 2026-09-26 3/150 2026-09-27 09:13 by 4IW0sJvtEqX8
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 GxESXJmptOtQ 2026-09-25 4/200 2026-09-27 06:44 by XgCC8uTcwILl
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 GxESXJmptOtQ 2026-09-25 4/200 2026-09-27 06:42 by XgCC8uTcwILl
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 GxESXJmptOtQ 2026-09-25 3/150 2026-09-27 06:32 by XgCC8uTcwILl
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 vQZoDrrm7mUF 2026-09-25 3/150 2026-09-27 06:08 by XgCC8uTcwILl
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 vQZoDrrm7mUF 2026-09-25 3/150 2026-09-27 06:05 by XgCC8uTcwILl
[论文投稿] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 vQZoDrrm7mUF 2026-09-25 4/200 2026-09-27 05:56 by XgCC8uTcwILl
[找工作] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +5 vQZoDrrm7mUF 2026-09-25 5/250 2026-09-27 05:53 by XgCC8uTcwILl
[博后之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 vQZoDrrm7mUF 2026-09-25 4/200 2026-09-27 05:50 by XgCC8uTcwILl
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +4 vQZoDrrm7mUF 2026-09-25 4/200 2026-09-27 05:44 by XgCC8uTcwILl
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 vQZoDrrm7mUF 2026-09-25 6/300 2026-09-27 05:42 by XgCC8uTcwILl
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 PGTSwSC3F6nQ 2026-09-24 5/250 2026-09-25 11:19 by yhq9807
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 PGTSwSC3F6nQ 2026-09-24 7/350 2026-09-25 11:18 by yhq9807
[教师之家] 课题组招2027级博士 上海工程技术大学 激光智能制造方向 +4 oxidpl 2026-09-20 6/300 2026-09-24 20:37 by oxidpl
信息提示
请填处理意见