标签:二叉树
1、二叉树定义
typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; typedef struct BTreeNode_t_ { BTreeNodeElement_t *m_pElemt; struct BTreeNode_t_ *m_pLeft; struct BTreeNode_t_ *m_pRight; } BTreeNode_t;
2、按层遍历二叉树
第一步:需要借助队列,首先将根节点pRoot入队;
第二步:当队列不空时,获得队首元素并出队,赋给pRoot,执行第三步;
第三步:如果pRoot左节点存在,则入队;如果pRoot右节点存在,则入队;执行第二步。
void LevelTraverse( BTreeNode_t *pRoot){ if( pRoot == NULL ) return ; queue <BTreeNode_t *> que; que.push( pRoot); while( !que.empty() ){ pRoot = que.front(); que.pop(); Visit( pRoot); if( pRoot->m_pLeft != NULL ) que.push( pRoot->m_pLeft ); if( pRoot->m_pRight != NULL ) que.push( pRoot->m_pRight); } return ; }
标签:二叉树
原文地址:http://blog.csdn.net/beitiandijun/article/details/41940417