已知二叉树采用链表存储结构,根结点指针为T,请写出计算二叉树中度为2的结点数目的非递归算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知二叉树采用链表存储结构,根结点指针为T,请写出计算二叉树中度为2的结点数目的非递归算法相关的知识,希望对你有一定的参考价值。
采用深度或者广度遍历就可以,分别采用栈或者队列结构。对于访问到的每个节点,如果度为2,就是所求的。比如用栈的话push(ST,root)
while(not empty(ST))
node=pop(ST)
if(node->left)
push(ST,node->left)
if(node->right)
push(ST,node->right)
上面的伪代码实际上就是图的深度遍历,二叉树算是一种特殊的图。
具体的写法可以搜索一下就可以找到。 参考技术A int Count(AGraph *T,int v,int visit[maxSize])
ArcNode *p;
int que [maxSize],front=0,rear=0;
int j;
int s=0;
Visit(v);
visit(v)=1;
rear=(rear+1)%maxSize
que[rear]=v;
while(front!=rear)
int k=0;
front=(front+1)%maxSize;
j=que[front];
p=T->adjlist[j].firstarc
while(p!=NULL)
k++;
if(visit [p->adjvexj==0)
Visit(p->adjvex);
visit[p->adjvex]=1;
rear=(rear+1)%maxSize;
que[rear]=p->adjvex;
p=p->nextarc;
if(k==2)
s++;
return s;
以上是关于已知二叉树采用链表存储结构,根结点指针为T,请写出计算二叉树中度为2的结点数目的非递归算法的主要内容,如果未能解决你的问题,请参考以下文章
已知一颗二叉链表表示二叉树T ,编写函数,判断T是不是为完全二叉树。先
用C语言编写程序,创建一个二叉树的二叉链表结构,然后输出从根结点到所有叶子结点的路径。
1、创建一棵二叉树,以二叉链表作存储结构,实现先根遍历算法 2、创建一棵二叉树,实现先根遍历算法、中根
设二叉树采用二叉链表表示,指针root指向根结点,试编写一个在二叉树中查找值为x的结点,并打印该结点所有祖先结点的算法。在此算法中,假设值为x的结点不多于一个。