【正确答案】正确答案:采用中序遍历,将遍历结点与前驱比较,若相同,则不输出并记数。核心语句段如下: if(t) {BSTPrint(t一>ichild); //中序遍历左子树 if(pre==null)pre=t; //pre是当前访问结点的前驱,调用本算法时初值为null else if(pre一>key==t一>key)count++;//count记重复元素,初值为0 else{cout<keyl pre=t;) //前驱后移 BSTPrint(t一>rchiid); //中序遍历右子树 }//if
【答案解析】