24小时热门版块排行榜    

查看: 2175  |  回复: 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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 j5mmowWXNWxv 2026-09-05 3/150 2026-09-06 13:09 by eObJPa4gWmp6
[教师之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 j5mmowWXNWxv 2026-09-05 3/150 2026-09-06 13:09 by eObJPa4gWmp6
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 7/350 2026-09-06 11:40 by eObJPa4gWmp6
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 7/350 2026-09-06 11:20 by eObJPa4gWmp6
[基金申请] 科研人应该花精力去思考如何解决问题,而不是去凝练问题 +10 瞬息宇宙 2026-09-01 19/950 2026-09-06 11:15 by jiangxuan2004
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 8/400 2026-09-06 11:09 by eObJPa4gWmp6
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 8/400 2026-09-06 11:00 by eObJPa4gWmp6
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 4/200 2026-09-06 07:20 by E1iiBLMU2XnD
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +6 7ZYIEW2YWn72 2026-09-04 9/450 2026-09-06 06:00 by E1iiBLMU2XnD
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +8 CRJ0Aq2FtVH0 2026-09-03 15/750 2026-09-06 05:48 by E1iiBLMU2XnD
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 5/250 2026-09-06 02:39 by E1iiBLMU2XnD
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 5/250 2026-09-06 02:19 by E1iiBLMU2XnD
[基金申请] 面上没中,邀请各位路过的虫友分析一下分数 +12 jackleilei 2026-09-03 13/650 2026-09-05 18:10 by fireguard
[文学芳草园] 两块石头 +6 阿美_Lml888 2026-09-03 8/400 2026-09-05 13:52 by 阿美_Lml888
[文学芳草园] 初秋的晨风 +4 阿美_Lml888 2026-09-04 6/300 2026-09-05 13:51 by 阿美_Lml888
[基金申请] 学科评审组评审是指会评吗? +6 瞬息宇宙 2026-08-31 9/450 2026-09-05 13:11 by haizai99
[博后之家] 广西大学-广州大学招聘博士后 欢迎广大优秀人才!!! +4 SCSIOyxguo 2026-09-03 7/350 2026-09-05 10:39 by Honglianlian
[硕博家园] Ei源刊怎么投 +4 Fengshun9711 2026-09-04 4/200 2026-09-04 19:30 by 研途知予
[硕博家园] 哈尔滨工业大学韩晓军教授课题组招收2027年硕士推免生及博士研究生 +3 灯灯灯灯DDDD 2026-09-03 3/150 2026-09-03 21:22 by 科研皮皮猪
[基金申请] 要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够 +9 瞬息宇宙 2026-08-31 17/850 2026-09-02 14:04 by anjeeshine
信息提示
请填处理意见