色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++自定義二叉樹并輸出二叉樹圖形

jf_96884364 ? 來源:jf_96884364 ? 作者:jf_96884364 ? 2023-01-10 16:29 ? 次閱讀

使用C++構建一個二叉樹并輸出。

輸入

輸入根節點為10,依次輸入6、4、8、14、12、16

代碼如下:

#include 
#include 
#include 
#include
#include  
#include

#include 
using namespace std;


struct TreeLinkNode         // 定義二叉樹
{
    int val;                       // 當前節點值用val表示
    struct TreeLinkNode *left;     // 指向左子樹的指針用left表示
    struct TreeLinkNode *right;    // 指向右子樹的指針用right表示
    struct TreeLinkNode *parent;  //指向父節點的指針用parent表示
    TreeLinkNode(int x) :val(x), left(NULL), right(NULL), parent(NULL) { } // 初始化當前結點值為x,左右子樹、父節點為空
};

//創建樹
TreeLinkNode* insert(TreeLinkNode* tree, int value)
{
    TreeLinkNode* node = (TreeLinkNode*)malloc(sizeof(TreeLinkNode)); // 創建一個節點
    node->val = value;      // 初始化節點
    node->left = NULL;
    node->right = NULL;
    node->parent = NULL;

    TreeLinkNode* temp = tree;      // 從樹根開始
    while (temp != NULL)
    {
        if (value < temp->val)  // 小于根節點就進左子樹
        {
            if (temp->left == NULL)
            {
                temp->left = node;  // 新插入的數為temp的左子樹
                node->parent = temp; // temp為新插入的數的父節點
                return tree;
            }
            else           // 下一輪判斷
                temp = temp->left;
        }
        else           // 否則進右子樹
        {    

            if (temp->right == NULL)
            {
                temp->right = node;  // 新插入的數為temp的右子樹
                node->parent = temp; // temp為新插入的數的父節點
                return tree;
            }
            else           // 下一輪判斷
                temp = temp->right;
        }
    }
    return tree;
}
 

//  ************* 輸出圖形二叉樹 *************
void output_impl(TreeLinkNode* n, bool left, string const& indent)
{
    if (n->right)
    {
        output_impl(n->right, false, indent + (left ? "|     " : "      "));
    }
    cout << indent;
    cout << (left ? '\\' : '/');
    cout << "-----";
    cout << n->val << endl;
    if (n->left)
    {
        output_impl(n->left, true, indent + (left ? "      " : "|     "));
    }
}
void output(TreeLinkNode* root)
{
    if (root->right)
    {
        output_impl(root->right, false, "");
    }
    cout << root->val << endl;
    if (root->left)
    {
        output_impl(root->left, true, "");
    }
    system("pause");
}
//  ***************************************



// ====================測試代碼====================
int main()
{

    TreeLinkNode tree = TreeLinkNode(10);       // 樹的根節點
    TreeLinkNode* treeresult;

    treeresult = insert(&tree, 6);         // 輸入n個數并創建這個樹
    treeresult = insert(&tree, 4);
    treeresult = insert(&tree, 8);
    treeresult = insert(&tree, 14);
    treeresult = insert(&tree, 12);
    treeresult = insert(&tree, 16);

    output(treeresult);         //  輸出圖形二叉樹

}

輸出

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖形
    +關注

    關注

    0

    文章

    71

    瀏覽量

    19278
  • C++
    C++
    +關注

    關注

    22

    文章

    2108

    瀏覽量

    73622
  • 二叉樹
    +關注

    關注

    0

    文章

    74

    瀏覽量

    12324
收藏 人收藏

    評論

    相關推薦

    計算機二叉樹的問題

    各位大神,本人馬上要考計算機級了,那個二叉樹老是弄不明白,比如一個題目,一棵二叉樹共有25個節點,其中五個葉子節點,則度為1的節點數為?
    發表于 09-04 09:45

    基于二叉樹的時序電路測試序列設計

    為了實現時序電路狀態驗證和故障檢測,需要事先設計一個輸入測試序列?;?b class='flag-5'>二叉樹節點和樹枝的特性,建立時序電路狀態二叉樹,按照電路二叉樹節點(狀態)與樹枝(輸入)的層次邏輯
    發表于 07-12 13:57 ?0次下載
    基于<b class='flag-5'>二叉樹</b>的時序電路測試序列設計

    二叉樹層次遍歷算法的驗證

    實現二叉樹的層次遍歷算法,對用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”創建的二叉樹進行測試。
    發表于 11-28 01:05 ?2096次閱讀
    <b class='flag-5'>二叉樹</b>層次遍歷算法的驗證

    二叉樹,一種基礎的數據結構類型

    然后我們再定義一棵深度也為 3 的二叉樹,該二叉樹的 n 個結點(n≤7),當從 1 到 n 的每個結點都與上圖中的編號結點一一對應時,這二叉樹就稱為完全
    的頭像 發表于 04-13 10:48 ?4348次閱讀
    <b class='flag-5'>二叉樹</b>,一種基礎的數據結構類型

    詳解電源二叉樹到底是什么

    作為數據結構的基礎,分很多種,像 AVL 、紅黑、二叉搜索....今天我想分享的是關于二叉樹
    的頭像 發表于 06-06 15:05 ?1w次閱讀
    詳解電源<b class='flag-5'>二叉樹</b>到底是什么

    C語言二叉樹代碼免費下載

    本文檔的主要內容詳細介紹的是C語言二叉樹代碼免費下載。
    發表于 08-27 08:00 ?1次下載

    紅黑(Red Black Tree)是一種自平衡的二叉搜索

    平衡(Balance):就是當結點數量固定時,左右子樹的高度越接近,這棵二叉樹越平衡(高度越低)。而最理想的平衡就是完全二叉樹/滿二叉樹,高度最小的二叉樹
    的頭像 發表于 07-01 15:05 ?5700次閱讀
    紅黑<b class='flag-5'>樹</b>(Red Black Tree)是一種自平衡的<b class='flag-5'>二叉</b>搜索<b class='flag-5'>樹</b>

    二叉樹操作的相關知識和代碼詳解

    是數據結構中的重中之重,尤其以各類二叉樹為學習的難點。在面試環節中,二叉樹也是必考的模塊。本文主要講二叉樹操作的相關知識,梳理面試常考的內容。請大家跟隨小編一起來復習吧。 本篇針對面
    的頭像 發表于 12-12 11:04 ?2039次閱讀
    <b class='flag-5'>二叉樹</b>操作的相關知識和代碼詳解

    二叉樹的前序遍歷非遞歸實現

    我們之前說了二叉樹基礎及二叉的幾種遍歷方式及練習題,今天我們來看一下二叉樹的前序遍歷非遞歸實現。 前序遍歷的順序是, 對于中的某節點,先遍歷該節點,然后再遍歷其左子樹,最后遍歷其右子
    的頭像 發表于 05-28 13:59 ?1952次閱讀

    C++基礎語法中的二叉樹詳解

    本期是C++基礎語法分享的第十四節,今天給大家來梳理一下! ? 二叉樹 BinaryTree.cpp: #include 《stdio.h》#include 《stdlib.h》 #define
    的頭像 發表于 09-29 18:02 ?2232次閱讀

    C語言數據結構:什么是二叉樹

    完全二叉樹:完全二叉樹是效率很高的數據結構。對于深度為K,有n個節點的二叉樹,當且僅當每一個節點都與深度為K的滿二叉樹中編號從1至n的節點一一對應時,稱為完全
    的頭像 發表于 04-21 16:20 ?2507次閱讀

    怎么就能構造成二叉樹呢?

    一直跟著公眾號學算法的錄友 應該知道,我在二叉樹:構造二叉樹登場!,已經講過,只有 中序與后序 和 中序和前序 可以確定一顆唯一的二叉樹。前序和后序是不能確定唯一的二叉樹的。
    的頭像 發表于 07-14 11:20 ?1579次閱讀

    使用C語言代碼實現平衡二叉樹

    這篇博客主要總結平衡二叉樹,所以,二叉排序樹知識不會提及,但是會用到。
    的頭像 發表于 09-21 11:00 ?1093次閱讀

    二叉樹的代碼實現

    二叉樹的主要操作有遍歷,例如有先序遍歷、中序遍歷、后序遍歷。在遍歷之前,就是創建一棵二叉樹,當然,還需要有刪除二叉樹的算法。
    的頭像 發表于 01-18 10:41 ?1227次閱讀
    <b class='flag-5'>二叉樹</b>的代碼實現

    C++構建復制二叉樹

    使用C++構建一個二叉樹復制、輸出。
    的頭像 發表于 01-10 15:17 ?1014次閱讀
    <b class='flag-5'>C++</b>構建<b class='flag-5'>并</b>復制<b class='flag-5'>二叉樹</b>
    主站蜘蛛池模板: 亚洲成 人a影院青久在线观看| 秋霞特色大片18岁入口| 少妇伦子伦情品无吗| 中文人妻熟妇精品乱又伦| 国产精品久久久久久AV免费不卡| 久久精品视频15人人爱在线直播| 色欲人妻AAAAAAA无码| 88蜜桃人妻无码精品系列| 国产午夜亚洲精品不卡电影| 欧洲电影巜肉欲丛林| 伊人久久大香线蕉综合电影 | 乌克兰xxxxx| qvod 在线| 邻家美姨在线观看全集免费| 亚洲精品卡2卡3卡4卡5卡区| 东北老妇xxxxhd| 欧美人成在线观看ccc36| 伊人网久久网| 蝴蝶中文娱乐| 香蕉久久一区二区三区啪啪| 抽插嫩B乳无码漫| 欧美另类与牲交ZOZOZO| 中文文字幕文字幕亚洲色| 黃色带三级a级| 校草让我脱了内裤给全班看| 第一次处破女高清电影| 欧美fxxx| 最近的中文字幕免费完整| 九九夜夜妹子| 亚洲精品中文字幕无码A片蜜桃| 国产精品…在线观看| 日日噜噜噜夜夜爽爽狠狠| bl高h文合集| 女人操男人| 99精品国产高清自在线看超| 老王午夜69精品影院| 在线少女漫画| 久久人妻少妇嫩草AV無碼| 一个人在线观看免费中文www| 寂寞夜晚视频高清观看免费| 亚洲青青青网伊人精品|