看看递归和非递归的效率,我晕
地球人都知道递归算法有调用函数的开销,导致性能不如非递归算法。
我用二叉树先序遍历,将递归和非递归作比较,却得出相反的结果,递归的效率高于非递归的,忘大侠们看看……
typedef struct node { int data; struct node * lchild, * rchild; } * proot; void pre_r(proot t) { if (t != 0 ) { value=t->data; pre_r(t -> lchild); pre_r(t -> rchild); } }void preorder(proot t) { proot p; proot S[Max+1]; int top; if (t==NULL) return; top=-1; S[++top]=t; while(top>=0) { p=S[top--]; while(p!=NULL) { value=p->data; S[++top]=p->rchild; p=p->lchild; } } }