算法题目---从上往下打印二叉树
来源:互联网 发布:淘宝卖的dw是真的吗 编辑:程序博客网 时间:2024/04/29 23:57
从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。
struct BinaryTreeNode
{int m_nValue;
BinaryTreeNode* m_pLeft;
BinaryTreeNode* m_pRight;
};
void PrintFromTopToBottom(BinaryTreeNode * pTreeRoot)
{
if(!pTreeRoot)
return;
deque<BinaryTreeNode*> dequeTreeNode;
dequeTreeNode.push_back(pTreeRoot);
while(dequeTreeNode.size())
{
BinaryTreeNode *pNode = dequeTreeNode.front();
dequeTreeNode.pop_front();
printf("%d ",pNode->m_nValue);
if(pNode->m_pLeft)
dequeTreeNode.push_back(pNode->m_pLeft);
if(pNode->m_pRight)
dequeTreeNode.push_back(pNode->m_pRight);
}
}
BinaryTreeNode* CreateBinaryTreeNode(int value)
{
BinaryTreeNode* pNode = new BinaryTreeNode();
pNode->m_nValue = value;
pNode->m_pLeft = NULL;
pNode->m_pRight = NULL;
return pNode;
}
void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight)
{
if(pParent != NULL)
{
pParent->m_pLeft = pLeft;
pParent->m_pRight = pRight;
}
}
void DestroyTree(BinaryTreeNode* pRoot)
{
if(pRoot != NULL)
{
BinaryTreeNode* pLeft = pRoot->m_pLeft;
BinaryTreeNode* pRight = pRoot->m_pRight;
delete pRoot;
pRoot = NULL;
DestroyTree(pLeft);
DestroyTree(pRight);
}
}
int main()
{
BinaryTreeNode* p1 = CreateBinaryTreeNode(1);
BinaryTreeNode* p2 = CreateBinaryTreeNode(2);
BinaryTreeNode* p3 = CreateBinaryTreeNode(3);
BinaryTreeNode* p4 = CreateBinaryTreeNode(4);
BinaryTreeNode* p5 = CreateBinaryTreeNode(5);
BinaryTreeNode* p6 = CreateBinaryTreeNode(6);
ConnectTreeNodes(p1,p2,p3);
ConnectTreeNodes(p2,p4,p5);
ConnectTreeNodes(p3,p6,NULL);
PrintFromTopToBottom(p1);
printf("\n");
DestroyTree(p1);
return 0;
}
阅读全文
0 0
- 算法题目---从上往下打印二叉树
- 题目1523:从上往下打印二叉树-九度
- 题目1523:从上往下打印二叉树
- 【九度】题目1523:从上往下打印二叉树
- 九度 题目1523:从上往下打印二叉树
- 题目1523:从上往下打印二叉树
- 题目1523:从上往下打印二叉树
- 题目1523:从上往下打印二叉树
- 题目1523:从上往下打印二叉树
- 剑指Offer题目1523:从上往下打印二叉树
- 从上往下打印二叉树(算法)
- 算法复习:从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下分层打印二叉树
- Q23:从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- Android:res之selector背景选择器
- 安卓实现"再按一次退出程序"效果
- 矩阵快速幂 模板
- trait的基本声明和使用
- xml基础知识(7)
- 算法题目---从上往下打印二叉树
- SpringCloudStream 构建消息驱动的微服务框架 集成kafka_http://blog.spring-cloud.io/blog/sc-stream.html
- Python3.x 进阶之路-翻译模块
- JSP 教程
- 算法系列——Combinations
- 猴子分桃等。。
- C#多线程中的异常处理
- 【STL】hdu 6015 Skip the Class
- 【代码笔记】iOS-增加右侧按钮