欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

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

来源:本站原创|时间:2020-01-10|栏目: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程序算法设计的学习有所帮助。

上一篇:C语言创建链表错误之通过指针参数申请动态内存实例分析

栏    目:C语言

下一篇:C语言实现带头结点的链表的创建、查找、插入、删除操作

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

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/3370.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有