非递归的先序遍历和中序遍历

来源:互联网 发布:三国杀 界张辽 知乎 编辑:程序博客网 时间:2024/05/16 18:33
// midorder bianlivoid MidOrder(BTree *bt){     Inite(s); //inite stack     BTree *p = s;     while (p != NULL || s.empty() != 1)     {           while (p != NULL)           {                 s.push(p);                 p = p->lchild;           }           if (s.empty() != 1)           {                 p = s.top();                 visite(p);                 s.pop();                 p = p->rhild;           }     }}// 先序遍历 void PreOrder(BTree *bt){     Inite(s); //inite stack     BTree *p = s;     while (p != NULL || s.empty() != 1)     {           while (p != NULL)           {                 visite(p);                 s.push(p);                 p = p->lchild;           }           if (s.empty() != 1)           {                 p = s.top();                 s.pop();                 p = p->rchild;           }     }}

0 0
原创粉丝点击