考研论坛 » 计算机 » 求懂数据结构的达人们进来吧 ̄谢谢了

2008-5-15 10:27 lyj0624
您所查看的帖子来源于考研论坛(bbs.kaoyan.com) 求懂数据结构的达人们进来吧 ̄谢谢了

二叉树的结点删除这个程序实在是看不懂了,上来求大家帮个忙。能给我解是一下。。QQ469293094
A-^H4cI3vd}6gTW5Y 程序在书P230页上,源程序如下:
|8FZa!O `b Status Delete(BiTree &p){
|*T;\ RB$CY //从二叉排序树中删除结点p,并重接它的左或右子树
4\'{Ix;V d if (!p->rchild){ //右子树空则只需重接它的左子树
3AFrk0O     q=p; p=p->lchild; free(q);
j!o Ym F }Zq G vPt
else if(!p->lchild){ // 只需重接它的右子树
-B i.LM:aM N XH0n     q=p; p=p->rchild; free(q);
!MD6tN_C\ws6st] }
k(msX9{,Xkb;B else{ // 左右子树均不空
cwqi$g[(y     q=p; s=p->lchild;
y v[c vnD,_     while(s->rchild){q=s; s=s->rchild} //专左,然后向右到尽头7Zg"e;B\G
    p->data=s->data;                      //s指向被删除结点的前缀@,d7K)R6dsP!e
    if(q!=p) q->rchild=s->lchild;         //重接*q的左子树
GE'\VW     else q->lchild=s->lchild;               //重接*q的右子树 u:`X.h&K-z5XG l:z#R1d
    delete s;ci'_'E$hY\*Q
    }
$cy,Z b#j(RA     return TRUE;#acP;MO;e|3TP~
}特别是。。左右子树均不空的时候。if(q!=p) 。它一会把S赋给Q。一会把P赋给Q。。到底是哪个。
@P2KpMWR6Y 第三部分不太懂。。谢谢了 ̄

转载请注明出自bbs.kaoyan.com,本贴地址:http://bbs.kaoyan.com/viewthread.php?tid=2244459

2008-5-15 13:29 studyboyz
引用型形式参数是可以在函数中被修改的,也就是说,函数结束了,那个参数的值也变了

2008-5-15 20:19 zxwkaya
引用型形式参数是可以在函数中被修改的,也就是说,函数结束了,那个参数的值也变了

2008-5-16 01:57 lyj0624
if(q!=p) q->rchild=s->lchild;  那Q!P是什么意思?
H#ez'h5L+G 好多不懂的。7Rgqg&S q g/r*iym
 如果方便的话。加我QQ好了。469293094
3W*Yd)j#l(\?&y  

2008-6-3 18:35 gisboy
如果画图表示一下,就明了了

页: [1]

Google
热门搜索: 在职研究生 | 出国留学 | MBA | 英语口语 | 职业培训 | 英语培训 | 笔记本 | 求职

Powered by Discuz! Archiver 5.5.0  © 1999-2007 考研加油站