Level-order Traversal(c语言函数指针样例)
来源:互联网 发布:jquery placeholder.js 编辑:程序博客网 时间:2024/05/18 01:20
Write a routine to list out the nodes of a binary tree in “level-order”. List the root, then nodes at depth 1, followed by nodes at depth 2, and so on. You must do this in linear time.
Format of functions:
void Level_order ( Tree T, void (*visit)(Tree ThisNode) );
where void (*visit)(Tree ThisNode) is a function that handles ThisNode being visited by Level_order, and Tree is defined as the following:
typedef struct TreeNode *Tree;struct TreeNode { ElementType Element; Tree Left; Tree Right;};
Sample program of judge:
#include <stdio.h>#include <stdlib.h>#define MaxTree 10 /* maximum number of nodes in a tree */typedef int ElementType;typedef struct TreeNode *Tree;struct TreeNode { ElementType Element; Tree Left; Tree Right;};Tree BuildTree(); /* details omitted */void PrintNode( Tree NodePtr ){ printf(" %d", NodePtr->Element);}void Level_order ( Tree T, void (*visit)(Tree ThisNode) );int main(){ Tree T = BuildTree(); printf("Level-order:"); Level_order(T, PrintNode); return 0;}/* Your function will be put here */
Sample Output (for the tree shown in the figure):
Level-order: 3 5 6 1 8 10 9
代码:
void Level_order ( Tree BT,void (*visit)(Tree ThisNode)){ if(BT == NULL)return; struct TreeNode *queue[100]; int head,tail; head = tail = 0; queue[tail++] = BT; while(head!=tail) { (*visit)(queue[head]); if(queue[head]->Left!=NULL)queue[tail++] = queue[head]->Left; if(queue[head]->Right!=NULL)queue[tail++] = queue[head]->Right; head++; }}
阅读全文
0 0
- Level-order Traversal(c语言函数指针样例)
- Binary Tree Level Order Traversal (easy)
- level- order traversal
- C++ Level-Order Traversal
- [leetcode] Level Order Traversal
- Level Order Tree Traversal
- BFS (Level Order Traversal)
- BFS (Level Order Traversal)
- BFS (Level Order Traversal)
- Level-order Traversal
- LeetCode刷题(C++)——Binary Tree Level Order Traversal(Normal)
- LeetCode刷题(C++)——Binary Tree Level Order Traversal II(Easy)
- LeetCode刷题(C++)——Binary Tree Zigzag Level Order Traversal(Medium)
- [C++]LeetCode: 31 Binary Tree Level Order Traversal
- [C++]LeetCode: 32 Binary Tree Level Order Traversal II
- [C++]LeetCode: 101 Binary Tree Zigzag Level Order Traversal
- 【leetcode c++】102 Binary Tree Level Order Traversal
- 【leetcode c++】107 Binary Tree Level Order Traversal II
- Free talk with Taylor'
- JavaWeb学习心得之Servlet(一)
- 常见的图片格式
- 【BigHereo 33】---L6---类模板,向量与虚函数
- python import 自定义 模块
- Level-order Traversal(c语言函数指针样例)
- 控制台和终端的区别
- PAT1056 组合数的和
- 学习从来不是一件简单的事,然而。。。。
- Atom 下 Hydrogen 的安装与使用
- spring的properties问题
- Windows下搭建php7
- Python tornado 数据库操作方法
- JavaWeb学习心得之Servlet(二)