第四章 树和二叉树

二叉链表的类型定义——教材101页

typedef struct btnode

{

  DataType data;

  struct btnode *lchild,*rchild;//指向左右孩子的指针

}*BinTree;

三叉链表的类型定义——教材102页

typedef struct ttnode

{

  DataType data;

  struct ttnode *lchild,*parent,*rchild;//在二叉链表的基础上多了一个 指向双亲的指针

}*TBinTree;

TBinTree root;

二叉链表的三种遍历的递归算法

1 先序遍历-根,左,右

void preorder(BinTree bt)

{

  if (bt != NULL)

  {

    visit (bt);//根

    preorder (bt->lchild);//左

    preorder (bt->rchild);//右

  }

}

2 中序遍历-左,根,右

void preorder(BinTree bt)

{

  if (bt != NULL)

  {    

    inorder (bt->lchild);//左

    

    preorder (bt->rchild);//右

  }

}

上一篇:二叉树


下一篇:剑指 Offer 07. 重建二叉树