数据结构——树的C语言实现

文章目录

        • 1.什么是树?
        • 2.如何判断是否是树?
        • 3.树的基本术语
        • 4.树的表示方法
        • 5.二叉树的定义
        • 6.特殊二叉树
        • 7.二叉树的性质
        • 8.二叉树的抽象数据类型定义
        • 9.二叉树的存储结构
          • 9.1顺序存储
          • 9.2 链表存储
        • 10.二叉树的遍历
          • 10.1 二叉树的遍历方法
            • 1.递归遍历
            • 2.层序遍历
          • 10.2 二叉树遍历的C语言实现
            • 1.递归遍历的实现
            • 2.层序遍历的实现

1.什么是树?

在这里插入图片描述

2.如何判断是否是树?

在这里插入图片描述

3.树的基本术语

在这里插入图片描述在这里插入图片描述

4.树的表示方法

在这里插入图片描述在这里插入图片描述

5.二叉树的定义

在这里插入图片描述

6.特殊二叉树

在这里插入图片描述

7.二叉树的性质

在这里插入图片描述

8.二叉树的抽象数据类型定义

在这里插入图片描述

9.二叉树的存储结构

9.1顺序存储

在这里插入图片描述
在这里插入图片描述

9.2 链表存储

在这里插入图片描述

10.二叉树的遍历

10.1 二叉树的遍历方法
1.递归遍历

在这里插入图片描述

2.层序遍历

在这里插入图片描述在这里插入图片描述

10.2 二叉树遍历的C语言实现
1.递归遍历的实现
#include<stdio.h>
#include<stdlib.h>#define ElementType inttypedef struct TreeNode *BinTree;
struct TreeNode{ElementType Data;BinTree Left;BinTree Right;
};//1.先序遍历
void PreOrderTraversal(BinTree BT)
{if(BT){printf("%d  ",BT->Data);PreOrderTraversal(BT->Left);PreOrderTraversal(BT->Right);}
}//2.中序遍历
void InOrderTraversal(BinTree BT)
{if(BT){InOrderTraversal(BT->Left);printf("%d  ",BT->Data);InOrderTraversal(BT->Right);}
}//3.后序遍历
void PostOrderTraversal(BinTree BT)
{if(BT){PostOrderTraversal(BT->Left);PostOrderTraversal(BT->Right);printf("%d  ",BT->Data);}
}//4.初始化树
BinTree MakeEmpty()
{BinTree BT;BT=(BinTree)malloc(sizeof(struct TreeNode));BT->Left=NULL;BT->Right=NULL;return BT;
}int main()
{int i;BinTree BT[7];for(i=0;i<7;i++){BT[i]=MakeEmpty();BT[i]->Data=i;}BT[0]->Left=BT[1];BT[0]->Right=BT[2];BT[1]->Left=BT[3];BT[1]->Right=BT[4];BT[2]->Left=BT[5];BT[2]->Right=BT[6];PreOrderTraversal(BT[0]);printf("\n");printf("%d  %d\n",BT[0]->Data,BT[0]->Left->Data);
}
2.层序遍历的实现

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gartner:为什么元宇宙商业离我们还很遥远?

来源&#xff1a;云技术(文&#xff1a;Gartner杰出研究副总裁Mark Raskino&#xff09;我记得第二人生&#xff08;Second Life&#xff09;的创始人Philip Rosedale说过&#xff1a;“请打开您的防火墙&#xff0c;进入到我们的世界中&#xff01;”他曾在台上接受过我的同事…

数据结构——二叉搜索树的C语言实现

1.什么是二叉搜索树&#xff1f; 2.二叉搜索树的操作 3.二叉搜索树的C语言实现 #include<stdio.h> #include<stdlib.h>#define ElementType int typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ElementType Data;BinTree Left;Bin…

模拟整个地球:英伟达Earth-2超级计算机即将上线

来源&#xff1a;机器之心未来几十年的世界将会发生什么变化&#xff0c;英伟达决定制造一台超级计算机来模拟整个地球。「如何让我们的未来在今天就变成现实呢&#xff1f;答案就是模拟&#xff0c;」英伟达创始人、CEO黄仁勋说道。上周二的GTC大会上&#xff0c;英伟达提出了…

数据结构——堆的C语言实现

1.什么是堆&#xff1f; 2.堆的抽象数据类型描述 3.堆的C语言实现 #include<stdio.h> #include<stdlib.h>#define ElementType int #define MaxData 100 typedef struct HeapStruct *MaxHeap; struct HeapStruct{ElementType *Elements;int Size;int Capacity; };…

洛谷P1067 多项式输出

.. 题目描述 一元nn次多项式可用如下的表达式表示&#xff1a; f(x)a_nx^na_{n-1}x^{n-1}\cdots a_1xa_0,a_n\ne 0f(x)an​xnan−1​xn−1⋯a1​xa0​,an​≠0 其中&#xff0c;a_ix^iai​xi称为ii次项&#xff0c;a_iai​ 称为ii次项的系数。给出一个一元多项式各项的次数和系…

李飞飞团队:如何制造更聪明的人工智能?让人工生命在复杂环境中进化

来源&#xff1a;集智俱乐部作者&#xff1a;郭瑞东 审校&#xff1a;张澳 编辑&#xff1a;邓一雪 论文题目&#xff1a;Embodied intelligence via learning and evolution论文链接&#xff1a;https://www.nature.com/articles/s41467-021-25874-z1. 智能和身体形态有关动物…

数据结构——图的C语言实现

文章目录1.什么是图&#xff1f;2.图的抽象数据结构3.如何在程序中表示一个图&#xff1f;3.1 邻接矩阵3.2 邻接表4.图的遍历4.1 深度优先搜索4.2 广度优先搜索5.图的C语言实现1.什么是图&#xff1f; 2.图的抽象数据结构 3.如何在程序中表示一个图&#xff1f; 3.1 邻接矩阵 …

张亚勤院士谈“智能计算新趋势”

来源&#xff1a;人工智能计算大会作为第四次工业革命的核心&#xff0c;人工智能已经成为全球新一轮科技革命和产业变革的核心驱动力。在2021人工智能计算大会&#xff08;AICC 2021&#xff09;上&#xff0c;清华大学智能科学讲席教授、美国艺术与科学院院士张亚勤带来了《智…

神经网络支持大脑是「预测机器」,预测是节能的

来源&#xff1a;ScienceAI编译&#xff1a;绿萝我们的大脑&#xff0c;一个包裹在骨性头骨内的三磅重的组织&#xff0c;如何从感觉中产生知觉是一个长期存在的谜。大量证据和数十年的持续研究表明&#xff0c;大脑不能像拼拼图一样&#xff0c;简单地组合感官信息来感知周围环…

元宇宙不是下一代互联网,而是人类群体思维空间或梦境世界的具现

前言&#xff1a;本文是根据6G俱乐部举办的6G与元宇宙研讨会上的发言整理形成作者&#xff1a;刘锋目前&#xff0c;业内有一种声音提出元宇宙是下一代互联网&#xff0c;之前WEB2.0、物联网、移动互联网和区块链爆发的时候也曾经这样表达过&#xff0c;如果从互联网的发展历史…

数据结构和算法——栈、队列、堆

文章目录1.预备知识1.1 栈1.2 队列1.3 堆2.用队列实现栈2.1 题目描述2.2 解题思路2.3 C实现3.用栈实现队列3.1 题目描述3.2 解题思路3.3 C实现4.最小栈4.1 题目描述4.2 解题思路5.合法的出栈序列5.1 题目描述5.2 解题思路5.3 C实现6.基本计算器6.1 题目描述6.2 解题思路7.数组中…

综述 | 北斗系统应用趋势分析

来源&#xff1a;智绘科服初审&#xff1a;张艳玲复审&#xff1a;宋启凡终审&#xff1a;金 君一、前言2020年6月23日&#xff0c;北斗三号最后一颗组网卫星成功发射。2020年7月31日&#xff0c;北斗三号建成暨开通仪式举行&#xff0c;北斗三号全球卫星导航系统正式开通[1]…

数据结构与算法——贪心算法

文章目录1.分发饼干1.1 题目描述1.2 解题思路1.3 C实现2.摆动序列2.1 题目描述2.2 解题思路2.3 C实现3.移掉K位数字3.1 题目描述3.2 解题思路3.3 C实现4.跳跃游戏4.1 题目描述4.2 解题思路4.3 C实现5.跳跃游戏 II5.1 题目描述5.2 解题思路5.3 C实现6.用最少数量的箭引爆气球6.1…

人为什么要睡觉?科学家给出进一步答案

来源&#xff1a;科技日报作者&#xff1a;张佳欣 人类一生中有三分之一的时间在睡觉&#xff0c;包括苍蝇、蠕虫甚至水母等无脊椎动物也会睡觉。在整个进化过程中&#xff0c;睡眠对所有具有神经系统的有机体来说都是普遍的&#xff0c;也是必不可少的。然而你有没有想过&…

操作系统——简介

文章目录1.操作系统的功能和目标1.1 作为用户和计算机硬件之间的接口1.2 作为系统资源的管理者1.3 作为最接近硬件的层次2.操作系统的概念、功能和目标3.操作系统的四大特征3.1 并发3.2 共享3.3 虚拟3.4 异步4.操作系统的运行机制4.1 两种指令4.2 两种处理器状态4.3 两种程序5.…

Andrew Gelman、Aki Vehtari​ | 过去50年最重要的统计学思想是什么?

来源&#xff1a; 数据分析网作者 &#xff1a;Andrew Gelman 美国统计学家、哥伦比亚大学统计学教授Aki Vehtari 阿尔托大学计算机科学系副教授近日&#xff0c;图灵奖得主、“贝叶斯网络之父”Judea Pearl在Twitter上分享了一篇新论文“What are the most important statis…

全局唯一ID的生成

数据在分片时&#xff0c;典型的是分库分表&#xff0c;就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题&#xff0c;但是生成的ID通常要满足分片的一些要求&#xff1a; 1 不能有单点故障。 2 以时间为序&#xff0c;或者ID里包含时间。这样一是可以少一个索引…

操作系统——进程

文章目录1.进程的定义2.进程的组成3.PCB4.进程的状态4.1 进程的五种状态4.2 进程状态间的转换5.进程控制6.进程通信6.1 共享存储6.2 管道通信6.3 消息传递7.线程7.1 线程的概念7.2 引入线程后的变化7.3 线程的属性7.4 线程的实现方式7.4.1 用户级线程7.4.2 内核级线程7.4.3 混合…

10分钟了解图卷积神经网络的常用算法和发展方向

来源&#xff1a;数学算法俱乐部近几年&#xff0c;机器学习在各个领域井喷式发展&#xff0c;现已成为当下最热门的技术。掌握机器学习&#xff0c;你就比 80% 的人更具备竞争优势。谷歌的无人驾驶、抖音的推荐系统、百度的人脸识别、大疆的无人机、科大讯飞的语音识别、小米的…

操作系统——调度

文章目录1.调度的概念2.调度的三个层次2.1 高级调度2.2 中级调度2.3 低级调度2.4 三种调度之间的关联1.调度的概念 2.调度的三个层次 2.1 高级调度 2.2 中级调度 2.3 低级调度 2.4 三种调度之间的关联