二叉树的层序遍历与一个数阶乘中0的个数
2017-07-23 16:57
239 查看
#pragma once #include <iostream> #include <stack> #include <queue> #include <stdio.h> #include <assert.h> using namespace std; /*################################################# 层序遍历:先遍历左子树,再遍历右子树 先遍历i 再遍历2*i+1 再遍历2*i+2 遍历时,把它放入队列中,为下一层遍历做准备 重复子过程 利用队列:先把根节点放入队列中 再进行循环,拿出节点,打印,再存入子节点(左右孩子) ####################################################*/ typedef struct BinaryTreeLeverOrder { int value; struct BinaryTreeLeverOrder* Lchild; struct BinaryTreeLeverOrder* Rchild; }Node; void LeverOrder(Node* root) { assert(root); queue<Node*> QueueNode; Node* prater = root; QueueNode.push(prater);//先把父节点放进去 while (QueueNode.size()) { Node* pnode = QueueNode.front(); QueueNode.pop(); cout << pnode->value ; if (pnode->Lchild != NULL) QueueNode.push(pnode->Lchild); if (pnode->Rchild != NULL) QueueNode.push(pnode->Rchild); } }
/*######################################################### 输入10 则判断10!(10的阶乘末尾有几个零) 展开:1*2*3*4*5*6*7*8*9*10 只有 2*5 *10会得到零(10也是2*5) 可以从2 和5 出发,又因为一个数阶乘中2的数目明显多于5的数目 则可计算5的数目,就可以得到多少个零 ##########################################################*/ int JudgeFactorialOfZero(const unsigned int N) { unsigned int i = 1; int count = 0; while (i <= N) { int j = i; while (j % 5 == 0)//有一个或多个5 { count++; j = j / 5; } i++; } return count; }
相关文章推荐
- 实现一颗二叉树的层序遍历/给定一个整数N,那么N的阶乘N!末尾有多少个0呢
- 每天一个算法之层序遍历二叉树
- 实现二叉树的层序遍历,说说Java中的队列结构(实现一个Java的队列)
- day09之N的阶乘N!末尾有多少个0 + 二叉树的层序遍历
- 二叉树层序遍历应用:要求将所有结点加上一个m_pNext指针,指向同层右侧的结点,右侧若无结点则指向NULL,写出其中的Connect函数。
- 数据结构:二叉树,二叉树的前中后序、层序遍历(递归法,非递归法),得到一个数叶子节点的个数……
- LeetCode 515 Find Largest Value in Each Tree Row(二叉树层序遍历)
- 二叉树(前序,中序,后序,层序)遍历递归与循环的python实现
- 二叉树层序遍历II
- 实现一颗二叉树的层序遍历【每日一题】
- 二叉树非递归后序遍历(非递归遍历中最麻烦的一个)
- 二叉树的层序遍历
- [LeetCode] Binary Tree Level Order Traversal 二叉树层序遍历
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现(转)
- 【LeetCode】Binary Tree Zigzag Level Order Traversal--- 层序遍历二叉树
- 数据结构——树(3):二叉树的前中后层序遍历,Morris遍历比较试验
- Java二叉树--层序遍历
- 二叉树的前、中、后序、层序遍历 非递归 测试:ABC##DE#G##F###
- 二叉树的层序遍历
- 二叉树的四种遍历方式 (前序,中序,后序,层序遍历 python实现)