中序非递归遍历线索二叉树的C语言代码
时间: 2023-06-08 08:04:27 浏览: 174
C语言实现二叉树的中序遍历(非递归)
以下是中序非递归遍历线索二叉树的C语言代码:
```c
void InOrderTraversal(ThreadTree T)
{
ThreadNode* p = T->lchild; // p指向根节点
while (p != T) { // 如果p指向根节点,则表示遍历完毕
while (p->ltag == Link) { // 如果p有左子树,则一直向左走
p = p->lchild;
}
printf("%c ", p->data); // 访问p的数据
while (p->rtag == Thread && p->rchild != T) { // 如果p的右指针是线索,则一直向右走
p = p->rchild;
printf("%c ", p->data); // 访问p的数据
}
p = p->rchild; // 如果p的右指针是指向孩子,则向右走到下一棵子树的根节点
}
}
```
注意:此处提供的代码为技术交流使用,仅供参考。任何对于这些代码的直接或间接使用及由此导致的后果,均由使用者自行承担责任。
阅读全文