zoukankan      html  css  js  c++  java
  • 二叉树的层序遍历(levelordertraverse)

    数据结构关于二叉树的遍历还有一种层序遍历,按层次依次输出元素。最上层最先输出,同层中最左最先输出,使用队列这一结构来实现:

    int levelOrderTraverse(IDTree *pTree)
    {
    	if( pTree == NULL)
    	{
    		return -1;
    	}
    	std::vector<IDTree *> vec;
    	vec.push_back(pTree);
    	size_t cur = 0;
    	size_t end = 1;
    	while(cur < vec.size())
    	{
    		end = vec.size();
    		while(cur < end)
    		{
    			cout << vec[cur]->val << endl;
    			if(vec[cur]->pLef != NULL)
    			{
    				vec.push_back(vec[cur]->pLef);
    			}
    			if(vec[cur]->pRig != NULL)
    			{
    				vec.push_back(vec[cur]->pRig);
    			}
    			++cur;
    		}
    	}
    	return 0;
    }
    

     外层循环是要获得当前队列中新的尾指针,而内层循环则是对新进队列的元素依次输出,并且按先后将结点对应的子树进入队列中。

  • 相关阅读:
    第1章 引论
    Java反射
    用户职责菜单请求组
    API及接口清单
    独立值集导入脚本
    报表对应程序包查询
    正则表达式
    合并工作表
    去重
    分割表
  • 原文地址:https://www.cnblogs.com/bestwangjie/p/5268170.html
Copyright © 2011-2022 走看看