二叉树是非线性数据结构,所以

作者&投稿:嬴盛 (若有异议请与网页底部的电邮联系)
二叉树是非线性数据结构,所以~

您好,如果您的题干就是问二叉树,而没有限定什么二叉树的话,正确答案是C,即链式顺序两种结构都可以;
分析:二叉树肯定能用链式方法存储,而且链式方法是目前最适合二叉树存储的方式;但是这道题目问的是能不能,而不是最好用,那么顺序存储也是可以的。我们可以按照层次来编号存储,第i号节点的左右孩子分别是2i和2i+1(当然存在的话),这样就可以用数组这类顺序结构来存放了,当然如果是用顺序二叉树这类结构很有特点的二叉树的话,用顺序结构比用链式还要好用,当然对于一般二叉树,链式比较好用~~

先介绍一下树:
1.树的定义
树是一种常见的非线性的数据结构。树的递归定义如下:
树是n(n>0)个结点的有限集,这个集合满足以下条件:
⑴有且仅有一个结点没有前件(父亲结点),该结点称为树的根;
⑵除根外,其余的每个结点都有且仅有一个前件;
⑶除根外,每一个结点都通过唯一的路径连到根上。这条路径由根开始,而未端就在该结点上,且除根以外,路径上的每一个结点都是前一个结点的后件(儿子结点);
2、结点的分类
在树中,一个结点包含一个元素以及所有指向其子树的分支。结点一般分成三类
⑴根结点:没有前件的结点。在树中有且仅有一个根结点。
⑵分支结点:除根结点外,有后件的结点称为分支结点。分支结点亦是其子树的根;
⑶叶结点:没有后件的结点称为树叶。由树的定义可知,树叶本身也是其父结点的子树。
根结点到每一个分支结点或叶结点的路径是唯一的。
3、有关度的定义
⑴结点的度:一个结点的子树数目称为该结点的度。显
然,所有树叶的度为0。
⑵树的度:所有结点中最大的度称为该树的度。4、树的深度(高度)
树是分层次的。结点所在的层次是从根算起的。根结点在第一层,根的后件在第二层,其余各层依次类推。即若某个结点在第k层,则该结点的后件均处在第k+1层。图(b)中的树共有五层。在树中,父结点在同一层的所有结点构成兄弟关系。树中最大的层次称为树的深度,亦称高度。
5、有序树和无序树
按照树中同层结点是否保持有序性,可将树分为有序树和无序树。如果树中同层结点从左而右排列,其次序不容互换,这样的树称为有序树;如果同层结点的次序任意,这样的树称为无序树。
6、树的表示方法
树的表示方法一般有两种:
⑴自然界的树形表示法:用结点和边表示树,例如上图采用的就是自然界的树形表示法。树形表示法一般用于分析问题。
⑵括号表示法:先将根结点放入一对圆括号中,然后把它的子树按由左而右的顺序放入括号中,而对子树也采用同样方法处理:同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。例如图可写成如下形式
(r(a(w,x(d(h),e)),b(f),c(s,t(i(m,o,n),j),u)))
7、树的存储结构一般有两种
⑴静态的记录数组。所有结点存储在一个数组中,数组元素为记录类型,包括数据域和长度为n(n为树的度)的数组,分别存储该结点的每一个儿子的下标
⑵动态的多重链表。由于树中结点可以有多个元素,所以可以用多重链表来描述比较方便。所谓多重链表,就是每个结点由数据域和n(n 为树的度)个指针域共n+1个域组成

下面是有关二叉树的内容:
二叉树的概念
二叉树是一种很重要的非线性数据结构,它的特点是每个结点最多有两个后件,且其子树有左右之分(次序不能任意颠倒)。
1、二叉树的递归定义和基本形态
二叉树是以结点为元素的有限集,它或者为空,或者满足以下条件:
⑴有一个特定的结点称为根;
⑵余下的结点分为互不相交的子集L和R,其中R是根的左子树;L是根的右子树;L和R又是二叉树;
由上述定义可以看出,二叉树和树是两个不同的概念
⑴树的每一个结点可以有任意多个后件,而二叉树中每个结点的后件不能超过2;
⑵树的子树可以不分次序(除有序树外);而二叉树的子树有左右之分。我们称二叉树中结点的左后件为左儿子,右后件为右儿子。
2、二叉树的两个特殊形态
⑴满二叉树: 如果一棵二叉树的任何结点,或者是树叶,或者恰有两棵非空子树,则此二叉树称作满二叉树。可以验证具有n个叶结点的满二叉树共有2n-1个结点。
⑵完全二叉树:如果一棵二叉树最多只有最下面两层结点度数可以小于2,并且最下面一层的结点都集中在该层最左边的若干位置上,则称此二叉树为完全二叉树
3、二叉树的三个主要性质
性质1:在二叉树的第i(≥1)层上,最多有2i-1个 结点
证明:我们采用数学归纳法证明:当i=1时只有一个根结点,即2i-1=20=1,结论成立。假设第k(i=k)层上最多有2k-1个结点,考虑i=k+1。由归纳假设,在二叉树第k层上最多有2k-1个结点,而每一个结点最多有两个子结点,因此在第k+1层上最多有2.2k-1=2(k+1)-1=2i,结论成立。综上所述,性质1成立。
性质2:在深度为k(k≥1)的二叉树中最多有2k-1个 结点。
证明:由性质1,在二叉树第i层上最多有2i-1个结点,显然,第1层¨第k层的最多结点数为 个结点。证毕。
性质3:在任何二叉树中,叶子结点数总比度为2的结点多1。
证明:设n0为二叉树的叶结点数;n1为二叉树中度为1的结点数;n2为二叉树中度为2的结点数,显然n=n0+n1+n2 (1)
由于二叉树中除了根结点外,其余每个结点都有且仅有一个前件。设 b为二叉树的前件个数,n=b+1(2)
所有这些前件同时又为度为1和度为2的结点的后件。因此又有b=n1+2n2 (3)
我们将(3)代入(2)得出n=n1+2n2+1 (4)
比较(1)和(4),得出n0=n2+1,即叶子数比度为2的结点数多1
4、普通有序树转换成二叉树
普通树为有序树T,将其转化成二叉树T’的规则如下:
⑴T中的结点与T’中的结点一一对应,即T中每个结点的序号和值在T’中保持不变;
⑵T中某结点v的第一个儿子结点为v1,则在T’中v1为对应结点v的左儿子结点;
⑶T中结点v的儿子序列,在T’中被依次链接成一条开始于v1的右链;
由上述转化规则可以看出,一棵有序树转化成二叉树的根结点是没有右子树的,并且除保留每个结点的最左分支外,其余分支应去掉,然后从最左的儿子开始沿右儿子方向依次链接该结点的全部儿子。
5、二叉树的存储结构
将每个结点依次存放在一维数组中,用数组下标指示结点编号,编号的方法是从根结点开始编号1,然后由左而右进行连续编号。每个结点的信息包括
⑴一个数据域(data);
⑵三个指针域,其中有父结点编号(prt)、左儿子结点编号(lch)和右儿子结点编号(rch)。
满二叉树和完全二叉树一般采用顺序存储结构
对于一般的二叉树,通常采用链式分配,即用二重链表表示一般的二叉树。这种链式分配即可以采用静态数据结构(数组),又可以采用动态数据结构(指针)。如果二叉树的存储需求量超过64Kb,则采用后者。由于二叉树中每个结点通常包括数据元素和两个分支。因此二叉树对应的二重链表中每个结点应有三个域:
⑴值域: data
⑵左指针域: lch
⑶右指针域: rch
这种链表也称为二叉链表。二叉链表头指针bt指向二叉树的根结点
6、二叉树的遍历
二叉树遍历的定义:按照一定的规律不重复地访问(或取出结点中的信息,或对结点作其它的处理)二叉树中的每一个结点。
二叉树遍历的顺序:如果用L、D、R分别表示遍历左子树、访问根结点、遍历右子树,则对二叉树的遍历可以有下列六种(3!=6)组合:LDR、 LRD、 DLR、 DRL、RDL、 RLD。若再限定先左后右的次序,则只剩下三种组合:LDR(中序遍历)、LRD(后序遍历)、DLR(前序遍历)。
前序遍历的规则如下:
若二叉树为空,则退出。否则
⑴访问处理根结点;
⑵前序遍历左子树;
⑶前序遍历右子树;
特点:由左而右逐条访问由根出发的树支 (回溯法的基础)
中序遍历的规则:
若二叉树为空,则退出;否则
⑴中序遍历左子树;
⑵访问处理根结点;
⑶中序遍历右子树;
后序遍历的规则如下:
若二叉树为空,则退出;否则
⑴后序遍历左子树;
⑵后序遍历右子树;
⑶访问处理根结点;
特点:可统计任一个结点为根的子树的情况(例如子树的权和,最优策略的选择(博弈数))

二叉树是非线性数据结构,所以(C、它能采用顺序存储结构和链式存储结构存储)。

一般而言,完全二叉树(包括满二叉树)使用顺序存储,普通二叉树一般用二叉链表或者三叉链表存储。

二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点。



扩展资料:

若对一棵有n个节点的完全二叉树进行顺序编号(1≤i≤n),那么,对于编号为i(i≥1)的节点:

当i=1时,该节点为根,它无双亲节点。

当i>1时,该节点的双亲节点的编号为i/2。

若2i≤n,则有编号为2i的左节点,否则没有左节点 。

若2i+1≤n,则有编号为2i+1的右节点,否则没有右节点。



您好,如果您的题干就是问二叉树,而没有限定什么二叉树的话,正确答案是C,即链式顺序两种结构都可以;
分析:二叉树肯定能用链式方法存储,而且链式方法是目前最适合二叉树存储的方式;但是这道题目问的是能不能,而不是最好用,那么顺序存储也是可以的。我们可以按照层次来编号存储,第i号节点的左右孩子分别是2i和2i+1(当然存在的话),这样就可以用数组这类顺序结构来存放了,当然如果是用顺序二叉树这类结构很有特点的二叉树的话,用顺序结构比用链式还要好用,当然对于一般二叉树,链式比较好用~~

答案是C
说明:
一般而言,完全二叉树(包括满二叉树)使用顺序存储
普通二叉树一般用二叉链表或者三叉链表存储

C


有关树和二叉树的叙述错误的是()。a.树中的最大度数没有限制,而二叉树...
在树和二叉树中,最大度数是没有限制的。树是一种非线性数据结构,它由一个根节点和若干个子节点组成,每个子节点都可以是一个树或者一个叶子节点。树的度数是指根节点有多少个子节点,即树有多少个分支。因此,树的最大度数是没有限制的,取决于树的结构和构造方式。相比之下,二叉树是一种特殊...

数据结构 二叉树
由于树中结点可以有多个元素,所以可以用多重链表来描述比较方便。所谓多重链表,就是每个结点由数据域和n(n 为树的度)个指针域共n+1个域组成下面是有关二叉树的内容:二叉树的概念二叉树是一种很重要的非线性数据结构,它的特点是每个结点最多有两个后件,且其子树有左右之分(次序不能任意颠倒)。1、二叉树的...

如果a和b都是二叉树的叶结点,那么下面判断中哪个是对的?a.存在一种二 ...
对于给定的二叉树结构,如果a和b都是该二叉树的叶节点,那么存在一种二叉树结构,使得a和b都是叶节点。二叉树是一种非线性数据结构,由称为结点的元素组成。每个结点最多有两个子结点,通常称为左子结点和右子结点。叶节点是那些没有子结点的结点,它们是二叉树的末端。对于任何二叉树,都存在一种...

数据结构都有哪些分类
三、树形数据结构的特点和分类:树形数据结构是典型的一种非线性数据结构,包含二叉树、多叉树、搜索树等类型。其中,二叉树是每个节点最多有两个子节点的树结构;多叉树则允许节点有多个子节点;搜索树是一种特殊的树结构,每个节点的值可以用来快速查找特定的数据项。四、图结构的特点和分类:图结构...

非线性结构有哪些类型
非线性结构的类型如下:1、树形结构:具有分支、层次特性,形态类似于自然界中的树。树形结构由节点和边组成,每个节点可以有多个子节点,但每个子节点只能有一个父节点。常见的树形结构有二叉树、平衡二叉树、红黑树等。2、图状结构:图由节点和边组成,节点表示实体,边表示节点之间的关系。图可以有...

非线性数据结构有哪些
列如有数据{a,b,c,d,e} a->-b>-c>d->e这就是线性的(线性的也分连续非连续,进出顺序...)a->b a->c b->c c->a a->d就是非线性的 问题六:以下数据结构中 哪一个是线性结构 线性结构有:顺序表,单链表,栈,队列,串,广义数组。非线性结构有:树、二叉树、图。问题七:C...

从数据结构来分类,主要包含哪几类数据?
其次,树形数据结构是一种非线性数据结构,用于表示具有层次关系的数据。树由节点组成,每个节点可以有零个或多个子节点。典型的树形数据结构包括二叉树、B树、红黑树等。二叉树是每个节点最多只有两个子节点的树结构,常用于搜索和排序算法。B树是一种平衡的多路查找树,广泛应用于数据库和文件系统。图形...

以下数据结构中,不属于线性数据结构的是( )。
【答案】:A 【答案】A。解析:线性数据结构包括线性表和链表,剩下的树与图还有离散结构都不属于线性结构,反过来说就是,除了线性表和链表其他的都不算线性结构。非线性结构是指在该类结构中至少存在一个数据元素,它具有两个或者两个以上的前驱或后继,如树和二叉树等。

主要的非线性数据结构有哪些?
阅读时,不必按线性方式顺序往下读,而是有选择的阅读自己感兴趣的部分。线性结构 线性结构是一个有序数据元素的集合。常用的线性结构有:线性表,栈,队列,双队列,数组,串。关于广义表,是一种非线性的数据结构。常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。

数据结构的问题
2.有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的入度。1、 错 3.一棵具有257个结点的完全二叉树,它的深度为9。 2、 对 4.二叉树中每个结点的两棵子树是有序的。 2、 对 5.为了实现图的遍历,其深度优先搜索算法使用的一个辅助数据结构为() 。a、栈 6.二叉树是非线性数据...

千山区13825485871: 数据结构 二叉树 -
贰喻悉复: 先介绍一下树:1.树的定义 树是一种常见的非线性的数据结构.树的递归定义如下: 树是n(n>0)个结点的有限集,这个集合满足以下条件: ⑴有且仅有一个结点没有前件(父亲结点),该结点称为树的根; ⑵除根外,其余的每个结点都有且仅...

千山区13825485871: 有哪位高手会做此习题呀 -
贰喻悉复: 一、 判断题: ( )1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域. ( )2.二叉树中每个结点的两棵子树的高度差等于1. ( )3.二叉树中每个结点有两棵非空子树或有两棵空子树. ( )4.二叉树中每个结点的...

千山区13825485871: 什么是二叉树,举一个二叉树的例子 -
贰喻悉复: 二叉树 树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样.树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示.树在计算机...

千山区13825485871: 什么是二叉树?二叉树拿来干什么? -
贰喻悉复: 1、二叉树在图论中是这样定义的:二叉树是一个连通的无环图,并且每一个顶点的度不大于3.有根二叉树还要满足根结点的度不大于2.有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点.然而,没有足够的信息来区分左结点...

千山区13825485871: 数据结构中什么是二叉树
贰喻悉复: 树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样.树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示.树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构.又如在数据库系统中,树型结构也是信息的重要组织形式之一.一切具有层次关系的问题都可用树来描述.满二叉树,完全二叉树,排序二叉树.

千山区13825485871: 只有根节点的二叉树是线性结构吗?为什么? -
贰喻悉复: 不是,线性列表应该是1对1的关系,二叉树是1对2的关系

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网