遍历二叉树
HBWYZ007
这个作者很懒,什么都没留下…
展开
-
求二叉树宽度
题目一个二叉树采用二叉链表存储,设计一个函数计算这个二叉树的宽度解题思路采用层次遍历,将每一个结点的信息存储在数组中,结点的信息包括这个结点的层数,以及结点的左右子树,数据类型(为char型字符),然后对这个数组进行遍历,层号数目最多的即为该二叉树最大宽度处的层号,然后计算这个层号的数目,即为最大宽度函数源码int maxNode(BTNode *b) //求该二叉树的宽度,也就是二叉树中最大的度{ St que[maxSize]; int front,rear; //定义顺序非循环原创 2021-03-11 19:19:21 · 10859 阅读 · 4 评论 -
查找二叉树中第k个结点的值
题目假设二叉树采用二叉链表存储结构存储,编写一个程序,输出先序遍历序列中第k个结点的值,假设k不大于结点的总数#函数程序代码块int n=0;//n为全局变量,记录当前访问的结点的位置编号,此为此函数之要点void locate(BTNode *p, int k){ if(p!=NULL) { ++n; if(k==n) { cout<<p->data<<endl; return; } else { locate(p-原创 2021-03-08 22:05:54 · 1364 阅读 · 0 评论 -
查找data域为key的结点
题目在一棵以二叉链表为存储结构的二叉树中,查找data域值等于key的结点是否存在(找到任何一个满足要求的结点即可),如果存在,则将q指向该结点,否则q赋值为NULL,假设data域为int型函数代码//寻找data域等于key的结点,并用q指向它,若不存在,则q指向NULLvoid search(BTNode *p, BTNode *&q, int key)//注意,这里的q参数定义为引用型指针,因为q要改变{ if(p!=NULL) { if(p->data==key原创 2021-03-08 21:19:21 · 659 阅读 · 0 评论