设为首页 加入收藏

TOP

一步一步写算法(之二叉树广度遍历) (二)
2014-11-23 23:36:39 来源: 作者: 【 】 浏览:24
Tags:步一步 算法 之二 广度
if(pNode->right)

insert_node_into_queue(pQueue, pNode->right);

pNode = get_node_from_queue(pQueue);

}

return pQueue;

}

QUEUE* traverse_node_by_layer(TREE_NODE* pNode)

{

QUEUE* pQueue;

if(NULL ==pNode)

return NULL;

pQueue = create_queue_for_tree(pNode);

assert(NULL != pQueue);

/* 首个节点加入队列*/

insert_node_into_queue(pQueue, pNode);

pNode = get_node_from_queue(pQueue);

while(pNode){

if(pNode->left)

insert_node_into_queue(pQueue, pNode->left);

if(pNode->right)

insert_node_into_queue(pQueue, pNode->right);

pNode = get_node_from_queue(pQueue);

}

return pQueue;

}

扩充部分:

上面的办法已经可以实现队列的按层输出,那么如果想在节点结构中直接实现数据的按层访问怎么办?其实两步走就可以:1)在已有的TREE_NODE添加prev和next;(2)按照刚才得到的pQueue->pHead结果,依次对prev和next进行赋值即可。不知道朋友们明白了没?

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一步一步写算法(之排序二叉树的.. 下一篇C语言学习笔记(三)--运算符与表..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: