树结构存储优化:父指针表示法实现高效功能
最适合的存储结构是父指针表示法。在该存储结构中,每个结点除了存储其数据外,还存储一个指向其父结点的指针。这样可以方便地实现以下各种功能:
(1) 从工结点开始,沿着父指针一直向上遍历,直到找到一个结点,它同时是'p'和'q'的祖先结点,即为'p'和'q'的最近公共祖先结点。
(2) 从工结点开始,深度优先遍历整棵树,遇到工结点就将其加入一个集合中,最终得到的集合即为工结点的所有子孙结点。
(3) 从工结点开始,沿着父指针一直向上遍历,直到找到根结点,记录遍历的路径即为根结点到工结点的路径。
(4) 从工结点的父结点开始,遍历其右兄弟结点,将其加入一个集合中,最终得到的集合即为工结点的所有右边兄弟结点。
(5) 判断工结点的子结点个数是否为0,如果是,则工结点为叶子结点;如果不是,则工结点不是叶子结点。
(6) 遍历工结点的所有子结点,将其加入一个集合中,最终得到的集合即为工结点的所有孩子结点。
原文地址: https://www.cveoy.top/t/topic/oDZn 著作权归作者所有。请勿转载和采集!