php能否实现一个这种形式的家谱树?给一个思路或者方法本人新手谢谢!!!
数据库这么建就好了
id | belongid | name | img
1 | 0 | 名字A | url //A为根,0代表根级别
2 | 1 | 名字B | url //B为A的分支
3 | 1 | 名字C | url //C为A的分支
4 | 2 | 名字D | url //D为B的分支
对于一般的家谱树(一般的多叉树)来说,我们可以很清楚的看出层次关系,树的层数表示代数(一共多少代人),树的最后一层表示最后一代人,由于多叉链表法表示的不方便,因此被迫无奈采用孩子兄弟表示法(二叉链表法)
假设我的家谱是这样的:
转换成孩子兄弟表示法后是这样的:
我们要做的是:这时我们要找有多少代人,以及最后以一代人出来。
如果根据第一个图来说找代数就是树的高度,最后一代人就是树的最后一层,二叉链表法中却不如第一个图来的直观,但是只要把握二叉链表法的本质还是很清晰的,根据孩子兄弟表示法的特性,(看二叉链表法的图)结点3的左子树保存的是其孩子,结点3的右子树保存的是其堂兄弟(对照第一个图来看)。假设我们每一个节点都有一个变量用来存储它是第几代的,那么从结点1开始,我们要找结点10是第几代的话,应该这么做:结点1是第一代,然后经过结点5是第二袋,然后看到结点10是第三代。因为第i个结点的左子树是他的孩子,既然是孩子,代数必须+1,而右子树是和第i结点同辈份的(堂兄弟),因此不能加1。本质来说就是往左走代数+1,向右走代数不变。这就是这题目的思路,通过这个方法你就可以知道有多少代人了,且每个节点都有保存了代数信息(用变量存起来了),再次遍历树把最后一代的结点输出即可。清晰了吗?清晰了我就开始写程序。
用word的“结构组织图”功能。
一、先把绘图工具栏调出来。
右击菜单栏空白处,然后单击“绘图”打上勾,出现绘图工具栏。
二、找到“插入组织结构图”按钮
在绘图工具栏里面有一个箭头和点组成的环状按钮。它就是“插入组织结构图”按钮了。
三、绘图
选择你需要的形状,然后进行编辑。具体编辑方法在此不做赘述。
php能否实现一个这种形式的家谱树?给一个思路或者方法本人新手谢谢!!!
本文2023-10-11 13:18:16发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/228108.html