zoukankan      html  css  js  c++  java
  • 二叉查找树输出【谷歌面试题】有序输出两棵二叉查找树中的元素

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正

        标题:给出两棵二叉查找树,有序输出所有元素,时间复杂度O(n),空间复杂度O(h),h为树的高度

        此题就是把两棵二叉查找树的中序遍历进程结合在一起。

        每日一道理
    风,那么轻柔,带动着小树、小草一起翩翩起舞,当一阵清风飘来,如同母亲的手轻轻抚摸自己的脸庞,我喜欢那种感觉,带有丝丝凉意,让人心旷神怡。享受生活,不一定要有山珍海味、菱罗绸缎为伴,大自然便是上帝所赐予人类最为珍贵的。
    struct TreeNode 
    {
    	int val;
    	TreeNode *left;
    	TreeNode *right;
    	TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };
    
    void print2BSTsInSortedOrder(TreeNode *root1, TreeNode *root2)
    {
    	stack<TreeNode *> stk1, stk2;
    	TreeNode *p1 = root1;
    	while(p1)
    	{
    		stk1.push(p1);
    		p1 = p1->left;
    	}
    	TreeNode *p2 = root2;
    	while(p2 != NULL)
    	{
    		stk2.push(p2);
    		p2 = p2->left;
    	}
    	while(!stk1.empty() || !stk2.empty())
    	{
    		if(!stk1.empty())
    			p1 = stk1.top();
    		if(!stk2.empty())
    			p2 = stk2.top();
    		if(p1 == NULL || (p2 && p2->val <= p1->val))
    		{
    			printf("%d ", p2->val);
    			stk2.pop();
    			p2 = p2->right;
    			while(p2 != NULL)
    			{
    				stk2.push(p2);
    				p2 = p2->left;
    			}
    		}
    		else if(p2 == NULL || (p1 && p1->val <= p2->val))
    		{
    			printf("%d ", p1->val);
    			stk1.pop();
    			p1 = p1->right;
    			while(p1)
    			{
    				stk1.push(p1);
    				p1 = p1->left;
    			}
    		}
    	}
    }

        

    文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!

    --------------------------------- 原创文章 By
    二叉查找树和输出
    ---------------------------------

  • 相关阅读:
    函数式宏定义与普通函数
    linux之sort用法
    HDU 4390 Number Sequence 容斥原理
    HDU 4407 Sum 容斥原理
    HDU 4059 The Boss on Mars 容斥原理
    UVA12653 Buses
    UVA 12651 Triangles
    UVA 10892
    HDU 4292 Food
    HDU 4288 Coder
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3105169.html
Copyright © 2011-2022 走看看