首页 > 其他分享 >二叉树的实现-BSTree

二叉树的实现-BSTree

时间:2023-01-28 14:44:35浏览次数:45  
标签:node 结点 遍历 实现 bstree tree 二叉树 BSTree

二叉树的实现-BSTree

一、树和二叉树

1-1 树的定义

翻译过来就是:树是由结点构成的,结点可以有也可以没有。若有结点,则肯定只有一个根结点。树是一种递归结构,俗称 “套娃”

1-2 二叉树的定义

翻译过来就是:二叉树是树的一个子集,每一个结点 至多 只能有两个结点(左结点和右结点)

二、二叉树的特性

2-1 二叉树的存储

二叉树的存储结构可以采用 顺序存储链式存储 两种方式。下面示例采用链式存储结构实现

示例中,小小改动,其中名称和结点数据域变化

typedef struct BSTreeNode
{
	int    key;                 // 关键字(键值)
	struct BSTreeNode *left;    // 左孩子
	struct BSTreeNode *right;   // 右孩子
	struct BSTreeNode *parent;  // 父结点
}Node, *BSTree;

2-2 二叉树的遍历

遍历二叉树(traversing binary tree)是指按某条搜索路径巡访树中每一个结点,使得每一个结点均被访问一次,而且仅被访问一次。

“遍历” 是二叉树各种操作的基础,假设访问结点的具体操作不仅仅局限于输出结点数据域的值,而把 “访问” 延申到对结点的判别、计数等其他操作,可以解决一些关于而二叉树的其他实际问题。

根据访问限定先左后右,有3种访问情况,分别称之为 先(根)序遍历、中(根)序遍历和后(根)序遍历

注意:以集合的方式区分左子树和右子树,不能单纯的以左结点、右结点进行遍历

标签:node,结点,遍历,实现,bstree,tree,二叉树,BSTree
From: https://www.cnblogs.com/caojun97/p/17069734.html

相关文章