队列求结点的双亲
刚学数据结构,大家看看,多多指教!
void Ancestor(BTNode *b,ElemType e)
{
struct snode
{
BTNode *node;
int parent;
}st[Maxsize];
BTNode *q;
int front,rear,p;
front=rear=-1;
rear++;
st[rear].node=b;
st[rear].parent=-1;
while(front<rear)
{
front++;
q=st[front].node;
p=front;
while(st[p].parent!=-1&&st[p].node->data==e)
{
p=st[p].parent;
cout<<st[p].node->data;
}
if(q->lchild!=NULL)
{
rear++;
st[rear].node=q->lchild;
st[rear].parent=front;
}
if(q->rchild!=NULL)
{
rear++;
st[rear].node=q->rchild;
st[rear].parent=front;
}
}
}