二叉树层序遍历.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二叉树层序遍历

二叉树层序遍历 微软面试题,难度系数低,题目描述如下:   输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。   例如输入   8   / \   6 10   / \ / \   5 7 9 11   输出8 6 10 5 7 9 11.   逻辑分析:   1、显然就是二叉树的层序遍历,在学习数据结构课程的时候,多数人都对先序,中序,后序遍历感到熟悉,这三种都属于深度搜索,而层序遍历则是广度搜索。尽管如此,微软以此为面试题目,还是相当便宜面试者。   2、对于层序遍历,类似先序遍历的想法,我们知道,先序遍历的循环实现需要借助辅助栈来实现,栈是一种LIFO的数据结构,即后进先出,last in first out,那么,对于层序遍历来说,过程刚好相反,即FIFO,first in first out,我们每次将根节点入队列,当队列非空,则将front赋给临时指针temp,继而输出根节点的卫星域,接下来判断根节点左右孩子是否为空,非空则入队列,上述工作以后,再度从队列中取元素,队列空,则循环结束。   void printByLevel(BSTreeNode* root)   {   queueBSTREENODE* Q;   BSTreeNode* p = root;   if(p == NULL)   return ;   Q.push(p);   while(!Q.empty())   {   p = Q.front();   Q.pop();   cout 《 p-m_nValue 《 endl;   if(p-m_pLeft)   Q.push(p-m_pLeft);   if(p-m_pRight)   Q.push(p-m_pRight);   }   }   3、因为之前做的是BSTree的镜像翻转例子,这里为了方便,不再改写为BTree,毕竟二叉排序树也是二叉树的一种。完整代码如下:   #include IOSTREAM   #include QUEUE   using namespace std;   typedef struct BSTreeNode????????? //a node in the BST   {   int m_nValue;??????????????????????????? //Value of node   struct BSTreeNode *m_pLeft;??? //left child of node   struct BSTreeNode *m_pRight;?? //right child of node   }BSTreeNode;   void printByLevel(BSTreeNode* root)   {   queueBSTREENODE* Q;   BSTreeNode* p = root;   if(p == NULL)   return ;   Q.push(p);   while(!Q.empty())   {   p = Q.front();   Q.pop();   cout 《 p-m_nValue 《 endl;   if(p-m_pLeft)   Q.push(p-m_pLeft);   if(p-m_pRight)   Q.push(p-m_pRight);   }   } int main()   {   BSTreeNode node[7];   node[0].m_nValue = 8;   node[0].m_pLeft = node[1];   node[0].m_pRight = node[2];   node[1].m_nValue = 6;   node[1].m_pLeft = node[3];   node[1].m_pRight = node[4];   node[2].m_nValue = 10;   node[2].m_pLeft = node[5];   node[2].m_pRight = node[6];   node[3].m_nValue = 5;   node[3].m_pLeft = NULL;   node[3].m_pRight = NULL;   node[4].m_nValue = 7;   node[4].m_pLeft = NULL;   node[4].m_pRight = NULL;   node[5].m_nValue = 9;   node[5].m_pLeft = NULL;   node[5].m_pRight = NULL;   node[6].m_nValue = 11;   node[6].m_pLeft = NULL;   nod

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档