0
点赞
收藏
分享

微信扫一扫

数据结构(知识点碎片十九)

  • 链式存储结构

用data 表示值域,用于存储对应的数据元素,lchild 和 rchild分别表示左指针域和右指针域,分别用于存储左孩子结点和右孩子结点的存储地址。这种链式存储结构通常简称为二叉链(binary linked list)。二叉链中通过根结点指针 b来唯一标识整个存储结构,称为二叉树b。

数据结构(知识点碎片十九)_存储结构

typedef struct BTNode
{
int data;
struct BTNode* lChild; 
struct BTNode* rChild;
}BTNode;
A1->lChild=A2; 
A1->rChild = A3;

A2->lChild = A4; 
A2->rChild = NULL; 

A3->lChild=A5; 
A3->rChild = NULL;

  • 二叉链表存储结构(树的孩子兄弟存储结构)

数据结构(知识点碎片十九)_存储结构_02

typedef struct BTNode
{
int data;
struct BTNode* child; 
struct BTNode* sibling;
}BTNode;

链接:
A1->child= A2;
A1->sibling = NULL; 
A2->sibling = A3; 
A3->sibling =A4; 
A4->sibling = NULL;

取A1孩子结点A3:
A1->child->sibling

4. 二叉树与树、森林之间的转换

  • 森林、树转化为二叉树
  1. 树中所有相邻兄弟之间加一条连线;
  2. 对树中的每个结点只保留它与长子之间的连线,删除与其他孩子之间的连线;
  3. 以树的根结点为轴心,将整棵树顺时针转动45°,使之结构层次分明。数据结构(知识点碎片十九)_存储结构_03数据结构(知识点碎片十九)_转换_04

数据结构(知识点碎片十九)_存储结构_05

举报

相关推荐

0 条评论