亲宝软件园·资讯

展开

C语言实现输入一颗二元查找树并将该树转换为它的镜像 C语言实现输入一颗二元查找树并将该树转换为它的镜像

人气:0
想了解C语言实现输入一颗二元查找树并将该树转换为它的镜像的相关内容吗,在本文为您仔细讲解C语言实现输入一颗二元查找树并将该树转换为它的镜像的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:C语言,输入,二元查找树,转换,镜像,下面大家一起来学习吧。

本文实例讲述了C语言实现输入一颗二元查找树并将该树转换为它的镜像的方法,分享给大家供大家参考。具体实现方法如下:

采用递归方法实现代码如下:

/* 
* Copyright (c) 2011 alexingcool. All Rights Reserved. 
*/ 
#include <iostream>
#include <iterator>
#include <algorithm>

using namespace std;

struct Node {
 Node(int i = 0, Node *l = NULL, Node *r = NULL) : item(i), left(l), right(r) {}
 
 int item;
 Node *left;
 Node *right;
};

Node *Construct()
{
 Node *node6 = new Node(11);
 Node *node5 = new Node(9);
 Node *node4 = new Node(7);
 Node *node3 = new Node(5);
 Node *node2 = new Node(10, node5, node6);
 Node *node1 = new Node(6, node3, node4);
 Node *root = new Node(8, node1, node2);

 return root;
}

void Convert(Node *root)
{
 if(root == NULL)
 return;

 Convert(root->left);
 //在这里试试swap(root->left, root->right),
 //看输出结果,有利于理解二叉树递归
 Convert(root->right);
 swap(root->left, root->right); 
}

void InOrder(Node *root)
{
 if(root) {
 InOrder(root->left);
 cout << root->item << " ";
 InOrder(root->right);
 }
}

void main()
{
 Node *root = Construct();
 InOrder(root);
 cout << endl;
 Convert(root);
 InOrder(root);
}

希望本文所述实例对大家C程序算法设计的学习有所帮助。

加载全部内容

相关教程
猜你喜欢
用户评论