C語(yǔ)言實(shí)現(xiàn)輸入一顆二元查找樹(shù)并將該樹(shù)轉(zhuǎn)換為它的鏡像
本文實(shí)例講述了C語(yǔ)言實(shí)現(xiàn)輸入一顆二元查找樹(shù)并將該樹(shù)轉(zhuǎn)換為它的鏡像的方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
采用遞歸方法實(shí)現(xiàn)代碼如下:
/*
* 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),
//看輸出結(jié)果,有利于理解二叉樹(shù)遞歸
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);
}
希望本文所述實(shí)例對(duì)大家C程序算法設(shè)計(jì)的學(xué)習(xí)有所幫助。
- 使用C語(yǔ)言構(gòu)建基本的二叉樹(shù)數(shù)據(jù)結(jié)構(gòu)
- 用C語(yǔ)言判斷一個(gè)二叉樹(shù)是否為另一個(gè)的子結(jié)構(gòu)
- 使用C語(yǔ)言求二叉樹(shù)結(jié)點(diǎn)的最低公共祖先的方法
- C語(yǔ)言實(shí)現(xiàn)二叉樹(shù)遍歷的迭代算法
- C語(yǔ)言實(shí)現(xiàn)找出二叉樹(shù)中某個(gè)值的所有路徑的方法
- C語(yǔ)言實(shí)現(xiàn)計(jì)算樹(shù)的深度的方法
- C語(yǔ)言二叉樹(shù)的非遞歸遍歷實(shí)例分析
- c語(yǔ)言版本二叉樹(shù)基本操作示例(先序 遞歸 非遞歸)
- c語(yǔ)言實(shí)現(xiàn)二叉查找樹(shù)實(shí)例方法
- 一波C語(yǔ)言二元查找樹(shù)算法題目解答實(shí)例匯總
相關(guān)文章
C++ 關(guān)于STL中sort()對(duì)struct排序的方法
本篇文章介紹了,關(guān)于STL中sort()對(duì)struct排序的方法。需要的朋友參考下2013-04-04
C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)中堆排序的分析總結(jié)
堆是計(jì)算機(jī)科學(xué)中一類特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱,通常是一個(gè)可以被看做一棵完全二叉樹(shù)的數(shù)組對(duì)象。而堆排序是利用堆這種數(shù)據(jù)結(jié)構(gòu)所設(shè)計(jì)的一種排序算法。本文將通過(guò)圖片詳細(xì)介紹堆排序,需要的可以參考一下2022-04-04
Qt C++實(shí)現(xiàn)錄屏錄音功能的示例詳解
實(shí)現(xiàn)一個(gè)錄屏+錄音的功能且需要快速開(kāi)發(fā),Qt無(wú)疑是一個(gè)非常好的選擇。他有豐富的類庫(kù)和接口可以很好的滿足開(kāi)發(fā)需求。本文就來(lái)和大家聊聊具體的實(shí)現(xiàn)方法吧2023-03-03
C語(yǔ)言實(shí)現(xiàn)鏈表與文件存取的示例代碼
這篇文章主要和大家分享C語(yǔ)言實(shí)現(xiàn)鏈表與文件存取的示例代碼,可以實(shí)現(xiàn)建立鏈表,然后把鏈表數(shù)據(jù)存儲(chǔ)到文件中,然后把文件數(shù)據(jù)存儲(chǔ)到數(shù)組中并輸出,感興趣的可以學(xué)習(xí)一下2022-04-04
探究C++中指針與數(shù)組運(yùn)算符優(yōu)先級(jí)
C++中與指針和數(shù)組相關(guān)的運(yùn)算符優(yōu)先級(jí),通過(guò)實(shí)際代碼示例解釋了運(yùn)算符的左結(jié)合與右結(jié)合方式,以及如何使用圓括號(hào)()來(lái)改變默認(rèn)的結(jié)合順序,文章還提供了一個(gè)優(yōu)先級(jí)表,列出了運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,幫助讀者更好地理解復(fù)雜表達(dá)式中運(yùn)算符的調(diào)用順序2024-10-10

