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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

  2021-03-19 我要评论
想了解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程序算法设计的学习有所帮助。

猜您喜欢

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们