摘要:
1. 简述 问题一:给定一棵二叉树,要求按分层遍历该二叉树,即从上到下的层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。 问题二:写一个函数,打印二叉树中某层次的节点(从左到右),其中根节点为第0层,函数原型为int PrintNodeAtLevel(Node* root, int level),成功返回1,失败返回0。2. 思路 使用队列进行广度优先搜索,主要有一个特点,即如果第k层元素一个都没出队,那么队列中必然没有k+1层元素,而且如果第k层元素刚好都出队了,队列中只有第k+1层元素,且包含所有的k+1层元素。所以从第一层开始,把根节点入队,记 阅读全文
摘要:
1. 简述 给定一棵二叉树,假定每个节点都用唯一的字符表示,具体结构如下:structNODE{NODE*pLeft;NODE*pRight;charchValue;}; 假设已经有了前序遍历和中序遍历结果,希望通过一个算法重建这棵树。 给定函数的定义如下:voidRebuild(char*pPreOrder,char*pInOrder,intnTreeLen,NODE**pRoot);参数pPreOrder:前序遍历结果的字符串数组。 pInOrder: 中序遍历结果的字符串数组。 nTreeLen: 树的长度。 pRoot:根据前序和中序遍历结果重新构建树的根节点。 例如 前序遍历结果:a 阅读全文