【三叉链表】
在二叉链表的存储方式下,从某结点出发可以直接访问到它的孩子结点,但要找到某个结点的父节点需要从根节点开始搜索,最坏情况下,需要遍历整个二叉链表。
而三叉链表,在二叉链表的基础上加了一个指向父结点的指针域,使得即便于查找孩子结点,又便于查找父结点,但相对二叉链表而言,加大了空间开销。
template<class T>
struct Node{
T data;//数据域,存放该结点的信息
Node<T> *lchild;//左指针域,存放指向左孩子的指针,当左孩子不存在时为空
Node<T> *rchild;//右指针域,存放指向右孩子的指针,当右孩子不存在时为空
Node<T> *parent;//父指针域,存放指向父节点的指针,当父节点不存在时为空
};