void InTraverse(Ptr head) { if (!head) return; InTraverse(head->left); std::cout << head->value << ' '; InTraverse(head->right); }
/* InOrderTraverse()调用 */ void InTraverse(SqBiTree T,int e) { if(T[2*e+1]!=Nil) /* 左子树不空 */ InTraverse(T,2*e+1); visit(T[e]); if(T[2*e+2]!=Nil) /* 右子树不空 */ InTraverse(T,2*e+2); }
void InTraverse(SqBiTree T,int e) { // InOrderTraverse()调用 if(T[2*e+1]!=Nil) // 左子树不空 InTraverse(T,2*e+1); VisitFunc(T[e]); if(T[2*e+2]!=Nil) // 右子树不空 InTraverse(T,2*e+2); }
void InTraverse(BiTree T) { if(NULL!=T) { InTraverse(T->lchild); printf("%d ",T->data); InTraverse(T->rchild); } }
void InTraverse(TBiNode *T) { if(!T) { printf("\n"); return; } InTraverse(T->lchild); printf("%d ", T->data); InTraverse(T->rchild); }
int main(){ Arr<int> ivec{ 3,2,4,1,0,5 }; auto head = getMaxTree(ivec); PreTraverse(head); std::cout << std::endl; InTraverse(head); }
/* 操作结果: 中序遍历T。 */ Status InOrderTraverse(SqBiTree T) { if(!BiTreeEmpty(T)) /* 树不空 */ InTraverse(T,0); printf("\n"); return OK; }
void InOrderTraverse(SqBiTree T,void(*Visit)(TElemType)) { // 初始条件:二叉树存在,Visit是对结点操作的应用函数 // 操作结果:中序遍历T,对每个结点调用函数Visit一次且仅一次 VisitFunc=Visit; if(!BiTreeEmpty(T)) // 树不空 InTraverse(T,0); cout<<endl; }
int main() { int a[10] = {3, 2, 1, 4, 5, 6, 7, 10, 9, 8}; TBiNode *T = NULL; bool taller; for(int i = 0; i < 10; i++) { InsertAVL(&T, a[i], &taller); } InTraverse(T); }