经典指数          
原因
1590
浏览数
0
收藏数
 

二叉树的前序遍历算法,分别用递归和非递归的方式实现,要求写出可执行的代码。

     举报   纠错  
 
切换
1 个答案
typedef struct Node { ElemType data; //ElemType为用户自定义的类型 struct Node *lchild; struct Node *rchild; }TreeNode; //递归实现 void TreeNode(TreeNode *head) { if(head) { Visit(head->data); //Visti()为对数据的操作 TreeNode(head->rchild); TreeNode(head->lchild); } } //非递归实现二叉树的先序遍历 void TreeNode(TreeNode *head) { TreeNode *p; p=head; Seqstack *s;//Seqstack包含两个元素一个是TreeNode * data的数组结构,另一个是表示栈顶的top标识 s->top=-1; while(s->top>-1||p!=NULL) { while(p!=NUll) { Visit(p->data); s->data[++top]=p; p=p->lchild; } if(s->top>-1) { p=s-data[top--]; p=p->rchild; } } }
 
切换
撰写答案