我写的这个按值来查找二叉树结点的函数,为什么返回的指针不是指向我要查找的那个结点啊?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/10/08 19:46:55
我写的这个按值来查找二叉树结点的函数,为什么返回的指针不是指向我要查找的那个结点啊?
BiTree Findpoint(BiTree T,char e)
{
if(T)
{
if(T->ch==e)
{
return T;
}
else
{
if(T->lchild)
point(T->lchild,e);
if(T->rchild )
point(T->rchild,e);
}
return NULL;
}
}
BiTree Findpoint(BiTree T,char e)
{
if(T)
{
if(T->ch==e)
{
return T;
}
else
{
if(T->lchild)
point(T->lchild,e);
if(T->rchild )
point(T->rchild,e);
}
return NULL;
}
}
首先你的返回值是NULL,所以肯定返回的不是你想要的节点;
另外你用递归找的话应该写成如下样子:
BiTree* pElemnet BiTree Findpoint(BiTree T,char e)
{
BiTree* BiTree Findpoint(BiTree T,char e)
{
if(T&&T->ch == e)
return e;
if(T==NULL)
return NULL;
if(T->lchild)
return Findpoint(T->lchild,e);
else if(T->rchild )
return Findpoint(T->rchild,e);
}
另外你用递归找的话应该写成如下样子:
BiTree* pElemnet BiTree Findpoint(BiTree T,char e)
{
BiTree* BiTree Findpoint(BiTree T,char e)
{
if(T&&T->ch == e)
return e;
if(T==NULL)
return NULL;
if(T->lchild)
return Findpoint(T->lchild,e);
else if(T->rchild )
return Findpoint(T->rchild,e);
}
线索二叉树的优点是便于在中序下查找前驱结点和后继结点.
二叉树的结点指针值是什么?
给出在先序线索二叉树中查找结点p的后继结点的过程 简答 不要算法
一个链表不知道头结点,有一个指针指向其中一个结点,请问如何删除这个指针指向的结点.
在二叉树中,指针p所指结点为叶子结点的条件是
在长度大于1的循环列表中,既无头结点也无根结点,S维指向列表中的某个节点指针,删除这个S结点的前续结点
P是指向双向链表中某个结点的指针,写出删除P指向结点的前驱结点的语句序列
关于二叉查找树二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值.这句话为什么是错的
关于二叉树结点算法的问题
求二叉树的结点个数算法
有一个循环单链表的长度大于1,表中既无头结点也无头指针.S为指向链表中某结点的指针,写算法,删除结点S
设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A前面插入结点X是的操作序列为: