国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

單值二叉樹?

相同的樹?

另一棵樹的子樹

二叉樹的前序遍歷

?二叉樹的構(gòu)造及遍歷


給大家推薦一款刷題,找工作的好網(wǎng)站——??途W(wǎng)

??途W(wǎng) - 找工作神器|筆試題庫(kù)|面試經(jīng)驗(yàn)|實(shí)習(xí)招聘內(nèi)推,求職就業(yè)一站解決_??途W(wǎng)

數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題

?

單值二叉樹?

數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題

思路:根節(jié)點(diǎn)跟左子樹比較,若相等則繼續(xù)比,一值比到左子樹為空,比完之后再跟右子樹比較


bool isUnivalTree(struct TreeNode* root){
 if(root==NULL)
 return true;
 if(root->left&&root->val!=root->left->val)
 return false;
 if(root->right&&root->val!=root->right->val)
 return false;
 return isUnivalTree(root->left)&&isUnivalTree(root->right);
}

相同的樹?

數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題

bool isSameTree(struct TreeNode* p, struct TreeNode* q){
    if(p==NULL&&q==NULL)
    return true; //如果都為空則返回真
    if(p==NULL||q==NULL)
    return false; //一個(gè)為空,一個(gè)不為空,則false
    if(p->val!=q->val)
    return false;//不相等,fasle
    return isSameTree(p->left,q->left)&&isSameTree(q->right,p->right);//遍歷后面的但要求左子樹跟左子樹比較,右子樹跟右子樹比較

}

另一棵樹的子樹

?數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題

bool isSameTree(struct TreeNode* p, struct TreeNode* q){
    if(p==NULL&&q==NULL)
    return true;
    if(p==NULL||q==NULL)
    return false;
    if(p->val!=q->val)
    return false;
    return isSameTree(p->left,q->left)&&isSameTree(q->right,p->right);

}

bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){
 if(root==NULL)
 return false;
 if(isSameTree(root,subRoot))
 return true;
 return isSubtree(root->left,subRoot)||isSubtree(root->right,subRoot);
}

二叉樹的前序遍歷

思路:1.先統(tǒng)計(jì)出該二叉樹節(jié)點(diǎn)的個(gè)數(shù)

? ? ? ? ? ? 2.創(chuàng)建一個(gè)新的數(shù)組,數(shù)組大小為二叉樹總結(jié)點(diǎn)大小

? ? ? ? ? ? 3.進(jìn)行前序遍歷根,左,右

int TreeSize(struct TreeNode* root)
{
    if(root==NULL)
    return 0;
    return TreeSize(root->left)+TreeSize(root->right)+1;
} //統(tǒng)計(jì)個(gè)數(shù)
 void preorder(struct TreeNode* root,int *a,int *pi)
 {
     if(root==NULL)
     return;
    a[*pi]=root->val;
    (*pi)++;
    preorder(root->left,a,pi);
     preorder(root->right,a,pi);
 }//遍歷
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* preorderTraversal(struct TreeNode* root, int* returnSize){
 int n=TreeSize(root);
 int *a=(int*)malloc(sizeof(int)*n);
 int i=0;
 preorder(root,a,&i);
 *returnSize=n;
 return a;
}

?二叉樹的構(gòu)造及遍歷

?二叉樹遍歷_??皖}霸_牛客網(wǎng) (nowcoder.com)

1.建立一個(gè)數(shù)組,給數(shù)組輸入數(shù)據(jù),#代表NULL

2.構(gòu)建一個(gè)二叉樹,把數(shù)組的值輸按前序遍歷輸入到二叉樹中,當(dāng)遇到#時(shí),代表該節(jié)點(diǎn)為空

3.將前序遍歷好的二叉樹,進(jìn)行中序遍歷

數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-515207.html

#include<stdio.h>
#include<stdlib.h>
typedef char Datatypedef;
typedef struct BinaryTreeNode
{
    Datatypedef data;
    struct BinaryTreeNode* left;
    struct BinaryTreeNode* right;
}TreeNode;//定義二叉樹

TreeNode* CreateTree(char* arr, int* pi)
{
    if (arr[*pi] == '#')
    {
        (*pi)++;
        return NULL;
    }
    TreeNode* tmp = (TreeNode*)malloc(sizeof(TreeNode));
    tmp->data = arr[*pi];
    (*pi)++;
    tmp->left = CreateTree(arr, pi);
    tmp->right = CreateTree(arr, pi);
    return tmp;
}//創(chuàng)建二叉樹,并把數(shù)組的值賦值給二叉樹,按前序遍歷賦值

void InorDer(TreeNode* tmp)
{
    if (tmp == NULL)
        return;
    InorDer(tmp->left);
    printf("%c ", tmp->data);

    InorDer(tmp->right);
}//前序遍歷換為中序遍歷

int main()
{
    char arr[100];
    scanf("%s", arr);
    int i = 0;
    TreeNode* root = CreateTree(arr, &i);
    InorDer(root);
    return 0;
}

到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)——二叉樹練習(xí)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【數(shù)據(jù)結(jié)構(gòu)】“單鏈表”的練習(xí)題(二)

    【數(shù)據(jù)結(jié)構(gòu)】“單鏈表”的練習(xí)題(二)

    ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???? ?? ?? ?? 個(gè)人主頁(yè) :阿然成長(zhǎng)日記 ??點(diǎn)擊可跳轉(zhuǎn) ?? 個(gè)人專欄: ??數(shù)據(jù)結(jié)構(gòu)與算法??C語(yǔ)言進(jìn)階 ?? 不能則學(xué),不知?jiǎng)t問,恥于問人,決無(wú)長(zhǎng)進(jìn) ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 前言: 最近在刷題的

    2024年02月13日
    瀏覽(28)
  • 【數(shù)據(jù)結(jié)構(gòu)】“單鏈表”的練習(xí)題(一)

    【數(shù)據(jù)結(jié)構(gòu)】“單鏈表”的練習(xí)題(一)

    ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???? ?? ?? ?? 個(gè)人主頁(yè) :阿然成長(zhǎng)日記 ??點(diǎn)擊可跳轉(zhuǎn) ?? 個(gè)人專欄: ??數(shù)據(jù)結(jié)構(gòu)與算法??C語(yǔ)言進(jìn)階 ?? 不能則學(xué),不知?jiǎng)t問,恥于問人,決無(wú)長(zhǎng)進(jìn) ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 題目要求: 給你單鏈

    2024年02月12日
    瀏覽(30)
  • 數(shù)據(jù)結(jié)構(gòu)與算法系列之習(xí)題練習(xí)

    數(shù)據(jù)結(jié)構(gòu)與算法系列之習(xí)題練習(xí)

    ?? ?? 博客:小怡同學(xué) ?? ?? 個(gè)人簡(jiǎn)介:編程小萌新 ?? ?? 如果博客對(duì)大家有用的話,請(qǐng)點(diǎn)贊關(guān)注再收藏 ?? 括號(hào)匹配問題。 用隊(duì)列實(shí)現(xiàn)棧。 用棧實(shí)現(xiàn)隊(duì)列。 設(shè)計(jì)循環(huán)隊(duì)列。 有效的括號(hào) //用棧來(lái)實(shí)現(xiàn) //左括號(hào)進(jìn)棧 右括號(hào)出棧并銷毀如果不匹配則return //設(shè)置兩個(gè)隊(duì)列,入棧

    2024年02月11日
    瀏覽(26)
  • 數(shù)據(jù)結(jié)構(gòu)與算法--圖(概念+練習(xí)題+解析)

    數(shù)據(jù)結(jié)構(gòu)與算法--圖(概念+練習(xí)題+解析)

    有向圖 在有向圖中有以下幾點(diǎn)結(jié)論: 1.所有頂點(diǎn)的度數(shù)之和等于邊數(shù)的二倍。 2.所有頂點(diǎn)的入度之和等于出度之和。 3.n個(gè)頂點(diǎn)的有向完全圖有n(n-1)條邊。 4.n個(gè)頂點(diǎn)的強(qiáng)連通圖至少有n條邊。 無(wú)向圖 在無(wú)向圖中有以下幾點(diǎn)結(jié)論: 1.所有頂點(diǎn)的度數(shù)之和等于邊數(shù)的二倍。 2.n個(gè)頂

    2024年02月04日
    瀏覽(22)
  • 二叉樹OJ練習(xí)題(C語(yǔ)言版)

    二叉樹OJ練習(xí)題(C語(yǔ)言版)

    目錄 ?一、相同的樹 ?二、單值二叉樹 ?三、對(duì)稱二叉樹 ?四、樹的遍歷 前序遍歷 中序遍歷 后序遍歷 ?五、另一顆樹的子樹 ?六、二叉樹的遍歷 ?七、翻轉(zhuǎn)二叉樹 ?八、平衡二叉樹 鏈接:100. 相同的樹 - 力扣(LeetCode) 首先考慮比較時(shí)節(jié)點(diǎn)為空的情況,當(dāng)比較到二者節(jié)點(diǎn)都

    2024年02月19日
    瀏覽(17)
  • 【數(shù)據(jù)結(jié)構(gòu)】時(shí)間復(fù)雜度---OJ練習(xí)題

    【數(shù)據(jù)結(jié)構(gòu)】時(shí)間復(fù)雜度---OJ練習(xí)題

    目錄 ??時(shí)間復(fù)雜度練習(xí) ??面試題---消失的數(shù)字 題目描述 題目鏈接:面試題 17.04. 消失的數(shù)字 ??解題思路 ??思路1: malloc函數(shù)用法? ??思路2: ??思路3: ???如果有不了解時(shí)間復(fù)雜度的請(qǐng)移步上一篇文章:【數(shù)據(jù)結(jié)構(gòu)】初識(shí) 題目描述 數(shù)組 nums 包含從 0 到 n 的所有整數(shù),

    2024年02月16日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】順序表詳解(附leetcode練習(xí)題)

    【數(shù)據(jù)結(jié)構(gòu)】順序表詳解(附leetcode練習(xí)題)

    ??個(gè)人主頁(yè):fighting小澤 ??作者簡(jiǎn)介:目前正在學(xué)習(xí)C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu) ??博客專欄:數(shù)據(jù)結(jié)構(gòu) ???歡迎關(guān)注:評(píng)論????點(diǎn)贊????留言???? 線性表(linear list)是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列。 線性表是一種在實(shí)際中廣泛使用的數(shù)據(jù)結(jié)構(gòu),常見的線性表:順

    2023年04月27日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)之鏈表練習(xí)與習(xí)題詳細(xì)解析

    數(shù)據(jù)結(jié)構(gòu)之鏈表練習(xí)與習(xí)題詳細(xì)解析

    個(gè)人主頁(yè):點(diǎn)我進(jìn)入主頁(yè) 專欄分類:C語(yǔ)言初階? ? ??C語(yǔ)言程序設(shè)計(jì)————KTV? ? ? ?C語(yǔ)言小游戲? ? ?C語(yǔ)言進(jìn)階 C語(yǔ)言刷題? ? ? ?數(shù)據(jù)結(jié)構(gòu)初階 歡迎大家點(diǎn)贊,評(píng)論,收藏。 一起努力,一起奔赴大廠。 目錄 1.前言 2.習(xí)題解析 2.1習(xí)題一 2.2習(xí)題二 2.3習(xí)題三 2.4習(xí)題四 2.

    2024年02月05日
    瀏覽(29)
  • 每天一道算法練習(xí)題--Day15 && 第一章 --算法專題 --- -----------二叉樹的遍歷

    每天一道算法練習(xí)題--Day15 && 第一章 --算法專題 --- -----------二叉樹的遍歷

    二叉樹作為一個(gè)基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),遍歷算法作為一個(gè)基礎(chǔ)的算法,兩者結(jié)合當(dāng)然是經(jīng)典的組合了。很多題目都會(huì)有 ta 的身影,有直接問二叉樹的遍歷的,有間接問的。比如要你找到樹中滿足條件的節(jié)點(diǎn),就是間接考察樹的遍歷,因?yàn)槟阋业綐渲袧M足條件的點(diǎn),就需要進(jìn)行遍

    2024年02月01日
    瀏覽(22)
  • 【數(shù)據(jù)結(jié)構(gòu)】算法的時(shí)間復(fù)雜度和空間復(fù)雜度(下)(附leetcode練習(xí)題)

    【數(shù)據(jù)結(jié)構(gòu)】算法的時(shí)間復(fù)雜度和空間復(fù)雜度(下)(附leetcode練習(xí)題)

    ??個(gè)人主頁(yè):fighting小澤 ??作者簡(jiǎn)介:目前正在學(xué)習(xí)C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu) ??博客專欄:數(shù)據(jù)結(jié)構(gòu) ???歡迎關(guān)注:評(píng)論????點(diǎn)贊????留言???? 空間復(fù)雜度也是一個(gè)數(shù)學(xué)表達(dá)式,是對(duì)一個(gè)算法在運(yùn)行過程中 臨時(shí)占用的額外的存儲(chǔ)空間大小的量度 。 空間復(fù)雜度不是程序占用

    2023年04月19日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包