題目:
根據二叉樹中序遍歷的非遞回演算法,在二叉樹t查找值為x的元素,若找到且其左子樹為空,則將值為y的元素插入成為其左孩子,否則若其右孩子為空,則將y插入成為其右孩子。插入失敗,回傳值為0,否則回傳值為1
下面是自己寫的:
Status InsertTree(BiTree &T,TElemType x,TElemType y){
SqStack S;
InitStack(S);
BiTree p=T;
BiTree q=new BiTNode;
while(p||!(StackEmpty(S))){
if(p){
Push(S,p);
p=p->lchild;
}
else{
Pop(S,q);
if((q->data=https://bbs.csdn.net/topics/=x)&&(q->rchild==NULL)){
BiTree s=new BiTNode;
s->data=https://bbs.csdn.net/topics/y;
s->lchild=NULL;
s->rchild=NULL;
q->rchild=s;
return OK;
}
if((q->data=https://bbs.csdn.net/topics/=x)&&(q->lchild=NULL)){
BiTree s=new BiTNode;
s->data=https://bbs.csdn.net/topics/y;
s->lchild=NULL;
s->rchild=NULL;
q->lchild=s;
return OK;
}
p=q->rchild;
}
return 0;
}
return 0;
}
為什么每次都插入失敗呢?求大佬解答
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/60166.html
標籤:C++ 語言
上一篇:請問一下,在函式中用new申請的空間,在函式結束時還會不會自動釋放,需要在主函式末尾手動釋放嗎?
下一篇:Python 程式奇怪的錯誤
