永发信息网

grasshopper怎么把列表数据转化为树形数据

答案:2  悬赏:0  手机版
解决时间 2021-01-31 10:19
grasshopper怎么把列表数据转化为树形数据
最佳答案
树状结构的数据保存在数据库中的常用方法有一下两种:
1、邻接表(adjacency list model)
2、预排序遍历树算法(modified preorder tree traversal algorithm)

用一下的例子讨论这两种方法的差异:

现有一棵树如下:

邻接表模式:
这种模式我们经常用到,很多的教程和书中也介绍过。我们通过给每个节点增加一个属性 parent 来表示这个节点的父节点从而将整个树状结构通过平面的表描述出来。根据这个原则,例子中的数据可以转化成如下的表:

我们看到 Pear 是Green的一个子节点,Green是Fruit的一个子节点。而根节点'Food'没有父节点。 为了简单地描述这个问题, 这个例子中只用了name来表示一个记录。 在实际的数据库中,你需要用数字的id来标示每个节点,数据库的表结构大概应该像这样:id, parent_id, name, description。
以下是代码:
// $parent is the parent of the children we want to see
// $level is increased when we go deeper into the tree,
// used to display a nice indented tree

function display_children($parent, $level)
{
// 获得一个 父节点 $parent 的所有子节点
$result = mysql_query('SELECt name FROM tree '.
'WHERe parent="'.$parent.'";');

// 显示每个子节点
while ($row = mysql_fetch_array($result))
{
// 缩进显示节点名称
echo str_repeat(' ',$level).$row['name']."n";

//再次调用这个函数显示子节点的子节点

display_children($row['name'], $level+1);
}
}
全部回答
不明白啊 = =!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
张公喝酒李公醉打一成语
龙都桌游吧地址在什么地方,我要处理点事
某工厂年烧柴油300t,重油400t,柴油燃烧排放
指纹仪出现幻影是什么问题
江苏常州德园在哪个方位
滴滴车几个月不出车,会不会被封号,比如家里
艾斯艾玛是什么意思
2012年3月某公司在郊区新建设立一家分公司,
2017年5月份考乡镇公务员笔式分数线是多少
【there反义词是什么】(there)反义词是什么?
仲裁判过以后不服到法院起诉多长时间出结果
从太原快递到南京要多久?
【天生我材必有用下一句】天生我才必有用,下
石林风景区门票多少
出纳银行日记账怎么记
推荐资讯
柘沟五村村地址在什么地方,我要处理点事
斯五行属什么
苹果6splus的钢化膜取掉后对屏幕有损伤吗?
客来安健康洗衣(同太北路)地址在什么地方,我
维纳斯美发(泉水店)地址有知道的么?有点事想
戴尔14-5439为什么无法识别我的启动U盘?是不
20岁女生为什么从来没被人追过
爱情故事专业剪烫染地址在什么地方,想过去办
解开一个苹果5 ID锁需要多少钱?需要多久?
中国邮政(顺城街)地址有知道的么?有点事想过
苹果6splus系统更新了10.02还能用回以前的版
形容哭的很痛苦的成语
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?