91人参与 • 2024-08-06 • 数据结构
在讲二叉树之前,我们先需要简单了解一下树的相关知识。
树的定义如下:树(tree)是n个节点的有限集。n=0时称为空树。在任意一颗非空树中:
注意事项:
树的节点包含一个数据元素及若干个指向其子树的分支。
在将树的分类之前先介绍度概念:
分类:
关系如下:
树有多种表示方法。
树这种结构除了根节点外,其余每个节点,不一定有孩子节点,但是一定有且仅有一个双亲节点。
假设一段连续空间存储树的节点,将根结点的parent值为-1,其余节点的parent存储双亲节点的下标。
public class tree{
public treenode [] elem;//节点数组
public int r;//根的位置
public int n;//节点个数
static class treenode{
int data;//节点数据
int parent;//双亲位置
}
}
使用多重链表,每个节点有多个指针域,其中每个指针指向一颗子树的根节点。
由于树中每个节点的度是不一样的,所以有两种方式。
public class tree{
public treenode []elem;//节点数组
int r;//跟的位置
int n;//节点数
static class treenode{
int child;
treenode next;
}
}
任意一棵树,它的节点的第一个孩子如果存在就是唯一的,它的右兄弟如果存在也是唯一的。
因此我们使用两个指针,分别指向该节点的第一个孩子和此节点的右兄弟。
class treenode {
int value; // 树中存储的数据
node firstchild; // 第一个孩子引用
node nextbrother; // 下一个兄弟引用
}
关于树的重要概念总结如下:
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论