给这个函数传的是指针,如果传整个结构,参数堆栈的效率较低
悟:单链表,恋栈,链队,二叉树的链式存储,传递的参数都是指针
顺序栈--顺序表-循环队列-传递的都是整个结构进去
做题一定要经过自己动脑,不要去看答案而试图去记住答案,一定要自己代码一行一行的写,数学题一步一步的写,经过自己深入动脑,这样才能理解好问题
完全自己研发出来,和二叉树的遍历基本相似
void exchange99(BTNode *T) { BTNode *b; //临时作为交换的变量 if(T==NULL || (T->lchild==NULL&&T->rchild==NULL) ) return; //为空或者是叶子结点-就不用交换了 b=T->lchild; T->lchild = T->rchild; T->rchild = b ; exchange99(T->lchild); exchange99(T->rchild); }
void exchange0(BTNode *T , BTNode *&b) { if(T==NULL) return; b=T; exchange(T->lchild,b->rchild); exchange(T->rchild,b->lchild); }
void exchange(BTNode *T , BTNode *&b) { if(T==NULL) return ; b=T; exchange(T->lchild,b->lchild); exchange(T->rchild,b->rchild); }
直接b=T就copy了这个二叉树,指向了同一棵二叉树