【题目】从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如:打印结果:8,6,10,5,7,9,11。【分析】二叉树遍历方式:前序,中序,后序,还有一种广度优先遍历,在对图遍历时涉及到,而二叉树可以看作退化的图,从例子中可以看出,打印顺序是按层决定的,观察发现,打印完根节点之后,然后打印其左右节点,再继续打印左节点的左右孩子和右结点的左右孩子,由此可以发现,如果将其结点的左右孩...
                            
                            
                                分类:
其他好文   时间:
2015-06-25 12:27:23   
                                阅读次数:
88
                             
                    
                        
                            
                            
                                不多说,直接贴程序,如下所示# -*- coding: utf-8 -*-# 定义二叉树节点类class TreeNode(object): def __init__(self,data=0,left=0,right=0): self.data = data sel...
                            
                            
                                分类:
编程语言   时间:
2015-06-14 00:29:17   
                                阅读次数:
293
                             
                    
                        
                            
                            
                                题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            va...
                            
                            
                                分类:
其他好文   时间:
2015-06-07 09:31:59   
                                阅读次数:
208
                             
                    
                        
                            
                            
                                垂直打印给定的一棵二叉树。下面的例子演示了垂直遍历的顺序。
       1
        /           2      3
      / \    /      4   5  6   7
             \                 8   9 
对这棵树的垂直遍历结果为:
4
2
1 5 6
3 8
7
9
在二叉树系列中,已经讨论过了一种O(n...
                            
                            
                                分类:
其他好文   时间:
2015-06-06 00:31:13   
                                阅读次数:
135
                             
                    
                        
                            
                            
                                这道题目难度一般,重要的是想到以队列作为辅助来解决。    分析:因为按层打印的顺序决定了先打印的应该为根结点。为了接下来能够打印值为 8 的结点的两个子结点,应该在遍历到该结点时把值为 6 和 10 的两个结点保存到一个容器里,此时容器中含有 6 和 10 两个结点。按照从左到右的要求,先取出值为 6 的结点。打印出值 6 之后分别把 5 和 7 两个左右子结点放入容器 ,此时容器中的结点有三个...
                            
                            
                                分类:
其他好文   时间:
2015-05-23 14:20:56   
                                阅读次数:
165
                             
                    
                        
                            
                            
                                题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
c...
                            
                            
                                分类:
其他好文   时间:
2015-05-22 22:42:01   
                                阅读次数:
133
                             
                    
                        
                            
                            
                                题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入图中的二叉树,则依次打印出8、6、10、5、7、9、11。
二叉树结点定义如下:
struct BinaryTreeNode{
	int m_nValue;
	BinaryTreeNode *m_pLeft;
	BinaryTreeNode *m_pRight;
};
思路:
每一次打印一个结点的时候...
                            
                            
                                分类:
其他好文   时间:
2015-05-17 12:15:03   
                                阅读次数:
82
                             
                    
                        
                            
                            
                                题目:
问题一:
     给定一颗二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。那么分层遍历如图3-17中的二叉树,正确输出应为:
1,
2,3
4,5,6
7,8
问题二:
     写另外一个函数,打印二叉树中的某层次的节点(从左到右),其中根节点为第0层,函数原型为int...
                            
                            
                                分类:
其他好文   时间:
2015-05-08 09:43:16   
                                阅读次数:
153
                             
                    
                        
                            
                            
                                题目1:写一个函数,打印二叉树中某层次的节点(从左到右),其中根节点为第0层。
思路:利用递归算法,思想是:要求访问二叉树中第k层的节点,那么其实就是要访问“以该二叉树根节点的左右子节点为根节点的两颗子树”中层次为k-1的节点
代码:
struct pNode {
    int data;
    pNode *lChild;
    pNode *rChild;
};
int ...
                            
                            
                                分类:
其他好文   时间:
2015-05-07 14:40:05   
                                阅读次数:
146
                             
                    
                        
                            
                            
                                #include
#include
using namespace std;
struct Node
{
	char value;
	Node *left;
	Node *right;
};
void create(Node *&T)
{
	char c;
	cin>>c;
	if('#'==c)
	{
		T=NULL;
	}
	else
	{
		T=new Node;
		T->value=...
                            
                            
                                分类:
其他好文   时间:
2015-04-28 11:48:03   
                                阅读次数:
113