ITPub博客

首页 > 应用开发 > IT综合 > 算法线索二叉树的建立和遍历

算法线索二叉树的建立和遍历

原创 IT综合 作者:dongyu2013 时间:2014-04-21 10:38:03 0 删除 编辑

点击(此处)折叠或打开

  1. typedef struct BiThrNode
  2. {
  3.     char data;
  4.     struct BiThrNode *lchild, *rchild;
  5.     PointerTag LTag;
  6.     PointerTag RTag;
  7. }BiThrNode, *BiThrTree;

  8. BiThrTree pre;

  9. void InThreading(BiThrTree p)          //建立
  10. {
  11.    if(p)
  12.    {
  13.      InThreading(p->lchild);
  14.      if(!p->lchild)
  15.      {
  16.          p->LTag=Thread;
  17.          p->lchild=pre;
  18.      }
  19.      if(!pre->rchild)
  20.      {
  21.          pre->RTag=Thread;
  22.          pre->rchild=p;
  23.      }
  24.      pre=p;
  25.        InThreading(p->rchild);
  26.    }
  27. }

  28. bool InOrderTraverse_Thr(BiThrTree T)  //遍历
  29. {
  30.     BiThrTree p;
  31.     p=T->lchild;
  32.     while(p!=T)
  33.     {
  34.         while(p->LTag==Link)
  35.         {
  36.             p=p->lchild;
  37.         }
  38.         cout<<p->data;
  39.         while(p->RTag==Thread&&p->rchild!=T)
  40.         {
  41.             p=p->rchild;
  42.             cout<<p->data;
  43.         }
  44.         p=p->rchild;
  45.     }
  46.     return true;
  47. }

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29012686/viewspace-1145881/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: MYSQL时间函数
请登录后发表评论 登录
全部评论

注册时间:2013-12-25

  • 博文量
    263
  • 访问量
    238065