家族树算法
A. 家族树是什么玩意与家谱有关系么能不能寻到根啊
我在网上找到一些资料,或许能帮到您
家族网是基于个人、家庭、家族的互动性文化网站,主要为全球华人提供姓氏寻根、在线家谱、家族互动、家庭教育、发现中国(文化资讯)等。
家族网属于一个多功能互动文化社区,主要服务产品是家族树,家族树支持注册用户建立数字家谱,包括邀请家族人员进入家族树进行协作管理,家族成员在共有的家族空间一起体验娱乐互动应用,而且家族树还有寻根辅助功能,根据你填写的信息,自动匹配可能会是你家族成员的人。家族网还有群组、博客、相册、档案馆、姓氏网络、时间轴等多种功能。这些功能和应用使家族树中的成员有良好的互动性,增加亲人感情和家庭温情。
B. c语言 二叉树的应用---家族族谱模拟
用树的遍历算法,加if(data==data1)确认查找
if里面是对树的操作,
专业的,还是自己打代码比较好
C. 什么是家族树
家族树,是指利用互联网技术,依据血缘关系或亲祖关系把人联系起来,再按照辈份排序构成树的模型。 在树中的成员可以清楚的知道自己的家族起源、家族关系以及其他成员的基础信息,并且享有记录、分享等沟通娱乐服务。
家族树的作用和意义
家族树,是一种家庭文化的工具。它的形式和范围,主要是 家族网·家族树
针对中国人的家庭观念以及对自身姓氏认同的需要,它的功能涵盖了家庭生活记录、教育、家族文化传承、观念等各个方面。作为家庭中必备的文化工具手册,家族树能帮助记录着真实的记载自己和家庭较长时期内所发生的一切事情。尤其是记录人生历经沧桑、拼搏不息直至辉煌的真实写照,既可以作为自己美好的回忆,又可以传承激励后人。 在传统的中国家庭里,都持有认祖归宗的思想,而编纂家谱无论在信息源还是操作中都是一个浩大的工程。家族树借助于互联网,轻松的解决了这个问题,并且可以通过分享、收藏等多种互动行为与家族人沟通、交流。
追祖溯源
D. 如何创建家族树
你提到的是指在家族网建立家族树吗?
家族网创建家族树很简单,直接进入家族网的登录页面,注册帐号之后就会出现属于你的家族树,用户根据自己的家庭构成来完善家族树上的资料,
家族树上的成员可以自己添加和更改,同时只要是同一棵家族树上的成员都可以对树进行共同的管理!
用户在家族网建立自己的家族树后,就相当于拥有了一个自己的在线家庭!
E. 具有三个节点的二叉树有几种形态哪几种
有三种形态,分别是:
1、完全二叉树:
若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。
2、满二叉树:
除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。
3、平衡二叉树:
平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
(5)家族树算法扩展阅读:
相关术语
1、树的结点:包含一个数据元素及若干指向子树的分支;
2、孩子结点:结点的子树的根称为该结点的孩子;
3、双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲;
4、兄弟结点:同一双亲的孩子结点; 堂兄结点:同一层上结点;
5、祖先结点: 从根到该结点的所经分支上的所有结点
6、子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙
7、结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推;
8、树的深度:树中最大的结点层
9、结点的度:结点子树的个数
10、树的度: 树中最大的结点度。
11、叶子结点:也叫终端结点,是度为 0 的结点;
12、分枝结点:度不为0的结点;
13、有序树:子树有序的树,如:家族树;
14、无序树:不考虑子树的顺序;
F. 请好心人帮忙用C数据结构做一个程序实现二叉家族树的建立与输出
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MaxWidth 40
#define MaxSize 30
typedef struct treenode
{
char name[10];
struct treenode *left,*right;
} *BTree;
BTree findfather(BTree p,char xm[])
{
BTree bt;
if(p==NULL) return(NULL);
else
{
if(strcmp(p->name,xm)==0)
return(p);
else
{
bt=findfather(p->left,xm);
if(bt!=NULL) return(bt);
else return(findfather(p->right,xm));
}
}
}
BTree creatree()
{
int n,m,i,contin=1,first=1;
char xm[10];
BTree btree,s,t,p;
printf("\n建立一个家谱二叉树(以空格结尾):\n");
while(contin)
{
if(first==1)
{
btree=(BTree)malloc(sizeof(struct treenode));
printf("\t姓名:");
gets(btree->name);
btree->right=NULL;
s=(BTree)malloc(sizeof(struct treenode));
printf("\t妻子:");
gets(s->name);
s->left=s->right=NULL;
btree->left=s;
first=0;
}
else
{
printf("\t父亲:");
gets(xm);
if(strcmp(xm," ")==0)
contin=0;
else
{
p=findfather(btree,xm);
if(p!=NULL)
{
p=p->left;
if(p==NULL) /*没有妻子*/
printf("\t没有儿子(因为没有妻子)\n");
else
{
while(p->right!=NULL) p=p->right;
s=(BTree)malloc(sizeof(struct treenode));
s->right=NULL;
p->right=s;
printf("\t儿子:");
gets(s->name);
printf("\t儿妻:");
gets(xm);
if(strcmp(xm,"")!=0)
{
t=(BTree)malloc(sizeof(struct treenode));
strcpy(t->name,xm);
t->left=t->right=NULL;
s->left=t;
}
else s->left=NULL;
}
}
else printf("不存在这样的父结点!\n");
}
}
}
return(btree);
}
void disptree(BTree BT)
{
BTree stack[MaxSize],p;
int level[MaxSize][2],top,n,i,width=4;
if(BT!=NULL)
{
printf("\n家谱凹入表示法:\n");
top=1;
stack[top]=BT; /*根结点入栈*/
level[top][0]=width;
while (top>0)
{
p=stack[top]; /*退栈并凹入显示该结点值*/
n=level[top][0];
for (i=1;i<=n;i++) /*其中n为显示场宽,字符以右对齐显示*/
printf(" ");
printf("%6s",p->name);
for(i=n+1;i<=MaxWidth-6;i+=2)
printf("━");
printf("\n");
top--;
if(p->right!=NULL)
{ /*将右子树根结点入栈*/
top++;
stack[top]=p->right;
level[top][0]=n+width; /*显示场宽增width*/
level[top][1]=2;
}
if (p->left!=NULL)
{ /*将左子树根结点入栈*/
top++;
stack[top]=p->left;
level[top][0]=n+width; /*显示场宽增width*/
level[top][1]=1;
}
}
}
}
void findson(BTree bt)
{
char xm[10];
BTree p;
printf("\n查找指定父亲的所有儿子\n");
printf("父亲:");
gets(xm);
p=findfather(bt,xm);
if(p==NULL)
printf("不存在%s的父亲!\n",xm);
else
{
p=p->left;
p=p->right;
if(p==NULL)
printf("%s没有儿子!\n",xm);
else
{
printf("%s有以下儿子!\n\t");
while(p!=NULL)
{
printf("%8s ",p->name);
p=p->right;
}
}
}
}
main()
{
BTree bt;
bt=creatree();
disptree(bt);
findson(bt);
}
G. 家族树是由什么组成的
人和关系组成的。
人即树叶,关系即树状结构。
代表网站是:家族网
H. 数据结构与算法中,树一般会应用在哪些方面为什么
数据结构就不多说了,树以递归性质这一对计算机而言最普遍的描述结构简直贯穿始终。查找树字典树四叉树哪个都是树的实际应用。除了低维结构不用树描述(其实一维结构也可以看成是退化后的树)。
算法层面,树基本上到处都是(当然有些时候是隐性的)。计算机执行指令是线性的,程序代码也是顺序的,是个一维结构,一旦需要解决高维问题,利用栈、队列等一维基础结构所能做到的只有树,而树则可以用来描述高维逻辑,起到了个桥梁作用。
算法举例如下。
状态空间遍历类:DFS、BFS
决策类:各种自动机(特例还有退化为一位情况的KMP)、贪心、分治、动态规划(同属状态空间遍历)、匹配
图与流:寻路(最短路)、生成树
应用举例就更多了,例如XML、DOM树、编译器中的模式识别和语法树、JSON数据传递、磁盘路径结构……
树的普遍取决于它的结构与通常解决问题的算法的一致性和结构简单严谨:递归定义、拓扑有序(无环)、实现简单。当面临高维状态时,其它结构的处理方式几乎一定不如转化为树来的简单,所以就成为了组织一维实现与高维逻辑中的桥梁。
I. 家族树是什么意思
家族树,是指利用互联网技术,依据血缘关系或亲祖关系把人联系起来,再按照辈份排序构成树的模型。
在树中的成员可以清楚的知道自己的家族起源、家族关系以及其他成员的基础信息,并且享有记录、分享等沟通娱乐服务。
J. 家族树的功能作用
家族树是专门为家庭提供的沟通、娱乐、分享的平台,家庭成员可以通过这棵树实现各种操作。
族谱管理
首先可以建立直观的家族树自动生成族谱。用户可以自主管理家族树进行添加、删除人员,并运用日历的辅助功能记录家庭节日、生日、纪念日等。最终导出,可形成自己的文字家谱。
自动匹配
家族树里有一定的成员后,会自动识别判断两棵树之间是否有亲戚、宗族关系。如果符合宗族关系,两棵树就可以建立关系,最后形成一个大的家族,家族里包含有家庭。比如:我建立了自己的家族树并且添加了父母、爷爷、奶奶的信息。我的堂兄也建立了自己的家族树并添加了相关信息。我和堂兄的爷爷、奶奶是共同的,根据这个关系,家族树会自动建立两棵树的关系并提示是否合并为一棵树。
家庭沟通
家族树有即时聊天、家庭日志、家庭祝福等互动功能。在一棵树或者有联系的树里,成员们可以畅谈家事、国事、天下事。也可以通过家庭日志的形式写一篇文章给大家或者指定人士分享。现代家庭多出现代沟或者矛盾,多数都是因为不能够互相理解而造成的。基于这一点,家族树提供了多种沟通的表达的方式,具体还要靠大家在使用的过程中慢慢发现。
其他服务
家族树还提供图片分享、家族礼物、家庭教育、家庭活动、音乐、空间等多种互动功能。更多适用于家庭的体验服务,还有待于网友反馈、添加。