以二叉链表为存储结构,编写非递归的前序遍历算法
typedef struct node
{datatype data;
struct node *lchild,*rchild;
}bitree;
bitree *t,*root;
void DLR(bitree *t)
{
bitree *s[n+1];//指针数组,元素为结点的指针
int a=0;
t=root;
while(t!=NULL || a!=0)
{ while(t!=NULL) {visit(*t);s[++a]=t;t=t->lchild;}//找到最左的结点
if(a!=0) s[a--]=t;t=t->rchild;
}
}
有没有大佬能解释一下这个代码的意思呀,有点看不懂
这段代码实现了一个使用二叉链表作为存储结构的非递归前序遍历算法。它通过指针数组记录节点,首先访问根节点,然后遍历左子树并压入指针数组,最后处理右子树。在遍历过程中,它会找到最左的节点并进行操作。
953





