//树的代码默写 typedef struct bitnode{ /*Elemtype data; struct bitnode *lchild,*rchild; */}bitnode,*bitree; //树的先中后的递归算法 void preorder(bitree T){ /*if(T!=null){ visited(T); preorder(T->lchild); preorder(T->rchild); */} } void inorder(bitree T){ /*if(T!=null){ inorder(T->lchild); visited(T); inorder(T->rchild); */} } void postorder(bitree T){ /*if(T!=null){ postorder(T->lchild); postorder(T->rchild); visited(T); */ } } //中序遍历的非递归算法 void inorder2(bitreee T){ /*InitStack(S); Bitree p=T;//等价于定义bitnode * while(p||!IsEmpty(S)){ if(p){ push(S,p); p=p->lchild; } else{ Pop(S,p); visit(p); p=p->rchild; } */ } } //非递归先序遍历算法 void preorder2(bitree T){ /* Initstack(S); Bitree p=T; while(p||!isempty(S)){ if(T!=NULL){ visited(p); push(S,p); p=p->lchild; } else { pop(S,p); p=p->rchild; } } */ } // void postOrder(Bitree){ InitStack(S); bitree p=T; r=NULL; while(p||!Isempty(S)){ if(p){ push(S,p); p=p->lchild; }}} //层次遍历 void levelorder(bitree T){ /* InitQueue(Q); bitree p; Enqueue(Q,T); while(!isempty(Q)){ Dequeue(Q,p); visited(p); if(p->lchild!=null) Enqueue(Q,p->lchild); else if(p->rchild!=null) Enqueue(Q,p->rchild); } */ }