publicBinaryTree(BinaryTreep)//拷贝构造函数(非递归){this();LinkedStack>stack=newLinkedStack>();LinkedStack>stack1=newLinkedSt...
public BinaryTree(BinaryTree p) //拷贝构造函数(非递归)
{
this();
LinkedStack> stack=new LinkedStack>();
LinkedStack> stack1=new LinkedStack>();
BinaryNode p1=p.root;
BinaryNode p2=this.root;
if(p1.left==null&&p1.right==null)
p2.data=p1.data;
else
{
while(p1!=null||!stack.isEmpty())
{
if(p1!=null)
{
p2.data=p1.data;
stack1.push(p2);
stack.push(p1);
p1=p1.left;
if(p1!=null)
p2=p2.left;
}
else
{
p1=stack.pop(); //结点出栈
p1=p1.right; //指向右结点
p2=stack1.pop();
if(p1!=null)
p2=p2.right;
}
}
}
}
展开