口碑好的网站建设商家,用wordpress还是php,哪些企业合适做网站,工信部网站备案密码目录
1.双亲表示法
2.孩子链表
3.孩子兄弟表示法
4.树与二叉树的转换
#xff08;1#xff09;树转换为二叉树
#xff08;2#xff09;二叉树转换成树
5.二叉树与森林的转化
#xff08;1#xff09;森林转换为二叉树 以下树为例 1.双亲表示法 双亲表示法定义了…目录
1.双亲表示法
2.孩子链表
3.孩子兄弟表示法
4.树与二叉树的转换
1树转换为二叉树
2二叉树转换成树
5.二叉树与森林的转化
1森林转换为二叉树 以下树为例 1.双亲表示法 双亲表示法定义了一个结构数组存放树的结点每个结点含两个域 数据域存放结点本身信息 双亲域指示本结点的双亲结点在数组的位置 如下图所示A,B,C的父节点为R 2.孩子链表 #孩子结点结构
typedef struct CTNode{int child;struct CTNode *next;
}*ChildPtr;#树结构
typedef struct{CTBox nodes[MAX_TREE_SIZE];int n,r;//n表示结点数,r表示根结点的位置
}#双亲结点结构
typedef struct{TElemType data;ChildPtr firstchild;}CTBox; 3.孩子兄弟表示法
用二叉链表作树的存储结构链表中每个结点的两个指针域分别指向其第一个孩子结点和下一个兄弟结点
typedef struct CSNode{ElemType data;struct CSNode *firstchild,*nextsibling;}CSNode,*CSTree;
如下图“A”所示第一个指针域指向他的第一个孩子“D”第二个指针域指向他的兄弟结点B以此类推: 4.树与二叉树的转换
树的存储结构如上图所示第一个指针域指向第一个孩子第二个指针域指向兄弟结点
而二叉树的存储结构则为第一个指针域指向左孩子第二个指针域指向右孩子转换如下 那转换的方法是什么呢
1树转换为二叉树
•在兄弟之间加连线 •对于每一个结点除了左孩子外去掉其与其余孩子之间的关系 •以树的根结点为轴心将整树顺时针转45度 更复杂的可以看下图 2二叉树转换成树
• 若p结点是双亲结点的左孩子则将p的右孩子右孩子的右孩子......沿分支找到的所有右孩子都与p的双亲用线连起来 •抹掉原二叉树中双亲与右孩子之间的连线 •将结点按层次排列形成树结构 5.二叉树与森林的转化
1森林转换为二叉树
•将每一棵树转换为二叉树 •将每一个根结点连接起来 •旋转45度 2二叉树转换为森林
•将二叉树中根结点与其右孩子连线及沿右分支搜索到的所有右孩子间连线全部抹掉使之变成孤立的二叉树 •将孤立的二又树还原成树