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++ vector及實(shí)現(xiàn)自定義vector以及allocator和iterator方式
這篇文章主要介紹了C++ vector及實(shí)現(xiàn)自定義vector以及allocator和iterator方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Qt編寫(xiě)地圖之實(shí)現(xiàn)覆蓋物坐標(biāo)和搜索
地圖應(yīng)用中經(jīng)常會(huì)需要有覆蓋物坐標(biāo)和搜索的功能,本文將利用Qt實(shí)現(xiàn)這一功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03C語(yǔ)言實(shí)現(xiàn)倉(cāng)庫(kù)物資管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)倉(cāng)庫(kù)物資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12C語(yǔ)言實(shí)現(xiàn)學(xué)生打卡系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生打卡系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12關(guān)于C++使用std::chrono獲取當(dāng)前秒級(jí)/毫秒級(jí)/微秒級(jí)/納秒級(jí)時(shí)間戳問(wèn)題
這篇文章主要介紹了C++使用std::chrono獲取當(dāng)前秒級(jí)/毫秒級(jí)/微秒級(jí)/納秒級(jí)時(shí)間戳,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07