树、二叉树、森林的相互转化

目录

一、树======>二叉树

二、二叉树======>树

三、二叉树======>森林

四、森林======>二叉树


一、树======>二叉树

①兄弟相连

②断开每个节点除与左孩子之外的连线

③调整树为二叉树

树、二叉树、森林的相互转化_第1张图片

二、二叉树======>树

①如果一个节点有父节点,将其右孩子与父节点相连,右孩子的右孩子与其父节点相连,依次类推(例如:B的父节点为A,B的右孩子为C,C的右孩子为D,就把A与C相连,A与D相连)

②断开每个节点与右孩子的连线,①中连接的除外(接①的例如:断开B与C、C与D)

③调整树为树

树、二叉树、森林的相互转化_第2张图片

三、二叉树======>森林

①断开根节点与其右孩子之间的连线,断开后生成的树也要断开根节点与其右孩子之间的连线

②将生成的二叉树转化为树,同上二

树、二叉树、森林的相互转化_第3张图片

四、森林======>二叉树

①把每棵树都转化为二叉树(如果一个森林只有两个节点,左孩子优先转化)

②连接所有二叉树

树、二叉树、森林的相互转化_第4张图片

你可能感兴趣的:(数据结构,数据结构,二叉树,树,森林,相互转化)