二叉链表非递归中序遍历C语言代码
时间: 2023-07-09 17:11:19 浏览: 134
c代码-非递归实现二叉树的先序、中序、后序遍历
以下是二叉链表非递归中序遍历的C语言代码:
```c
void inorderTraversal(BiTree T) {
if (T == NULL)
return;
Stack S;
initStack(&S);
BiTree p = T;
while (p || !isEmpty(S)) {
if (p) {
push(&S, p);
p = p->lchild;
} else {
pop(&S, &p);
visit(p);
p = p->rchild;
}
}
}
```
其中,`BiTree`是二叉树结构体类型,包含左右子树指针;`Stack`是栈结构体类型,包含栈元素数组和栈顶指针;`initStack()`是初始化栈函数;`push()`是入栈函数;`pop()`是出栈函数;`visit()`是遍历到节点时的操作函数。
阅读全文