已知二叉树T的结点形式为(llink,data,count,rlink),在树中查找值为X的结点,若找到,则记数(count)加1;否则,作为一个新结点插入树中,插入后仍为二叉排序树,写出其非递归算法。

admin2019-01-16  32

问题 已知二叉树T的结点形式为(llink,data,count,rlink),在树中查找值为X的结点,若找到,则记数(count)加1;否则,作为一个新结点插入树中,插入后仍为二叉排序树,写出其非递归算法。

选项

答案typedef struct node{ datatype data; int count; struct node*llink,水rlink: }BiTNode,* BSTree; void Search_InsertX(BSTree t,datatype X){ //在二叉排序树t中查找值为X的结点,若查到,则其结点的count域值增1, //否则,将其插入到二叉排序树中 BSTree P=t; while(P!=null&&P->data!=X){ //查找值为x的结点,f指向当前结点的双亲 f=p; if(P一>datarlink: else P=p->llink; } if(!P){ //无值为x的结点,插入之 P:(BiTNode*) malloc(sizeof(BiTNode)); p->data=X;p->llink=null;p->rlink=null; if(f->data>X) f->llink=P; else f->rlink=p; } else P一>count++; //查询成功,值域为X的结点的count增1 }

解析
转载请注明原文地址:https://kaotiyun.com/show/deRi777K
0

最新回复(0)