问答题 元素集合已存入整型数组A[1..n]中,试写出依次取A中各值A[i](1≤i≤n)构造一棵二叉排序树T的非递归算法:CSBT(A)。【北京科技大学2000八、2(10分)】
【正确答案】正确答案:二叉排序树的建立,首先是查找插入位置,插入的元素是叶子,核心语句段如下: for(i=1;i≤rl;i++) (p=T;f=null; //在调用Creat—BST时,T=null while(p!=null) if(p->datac:A[i]){f=p;p=p->rchild; ) //f是P的双亲 else if(p一>data>A[i]){f=p;p=P一>lchild;) s=rlew(BiNode);s一>data=A[i];S一>lchild=s一>rchild=null; //建立s结点 if(f==null)T=s; //根结点 el se if(s一>datadata)f一>lchild=s; //左子女 else f一>rchild=s; //右子树根结点的值大于等于根结点的值 }
【答案解析】