问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于数据结构C语言版的习题问题

发布网友 发布时间:2022-05-21 01:56

我来回答

1个回答

热心网友 时间:2023-10-11 08:24

树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。一、树的概述树结构的特点是:它的每一个结点都可以有不止一个直接后继,除根结点外的所有结点都有且只有一个直接前趋。以下具体地给出树的定义及树的数据结构表示。(一)树的定义树是由一个或多个结点组成的有限集合,其中: ⒈必有一个特定的称为根(ROOT)的结点;

⒉剩下的结点被分成n>=0个互不相交的集合T1、T2、......Tn,而且, 这些集合的每一个又都是树。树T1、T2、......Tn被称作根的子树(Subtree)。

树的递归定义如下:(1)至少有一个结点(称为根)(2)其它是互不相交的子树

1.树的度——也即是宽度,简单地说,就是结点的分支数。以组成该树各结点中最大的度作为该树的度,如上图的树,其度为3;树中度为零的结点称为叶结点或终端结点。树中度不为零的结点称为分枝结点或非终端结点。除根结点外的分枝结点统称为内部结点。

2.树的深度——组成该树各结点的最大层次,如上图,其深度为4;

3.森林——指若干棵互不相交的树的集合,如上图,去掉根结点A,其原来的二棵子树T1、T2、T3的集合{T1,T2,T3}就为森林;

4.有序树——指树中同层结点从左到右有次序排列,它们之间的次序不能互换,这样的树称为有序树,否则称为无序树。

5.树的表示

树的表示方法有许多,常用的方法是用括号:先将根结点放入一对圆括号中,然后把它的子树由左至右的顺序放入括号中,而对子树也采用同样的方法处理;同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。如上图可写成如下形式:
(A(B(E(K,L),F),C(G),D(H(M),I,J)))

二叉树

1.二叉树的基本形态:

二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:

(1)空二叉树——(a);

(2)只有一个根结点的二叉树——(b);

(3)右子树为空的二叉树——(c);

(4)左子树为空的二叉树——(d);

(5)完全二叉树——(e)

注意:尽管二叉树与树有许多相似之处,但二叉树不是树的特殊情形。

2.两个重要的概念:

(1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;

(2)满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,。

3.二叉树的性质

(1) 在二叉树中,第i层的结点总数不超过2^(i-1);

(2) 深度为h的二叉树最多有2h-1个结点(h>=1),最少有h个结点;

(3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,

则N0=N2+1;

(4) 具有n个结点的完全二叉树的深度为int(log2n)+1

(5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:

若I为结点编号则 如果I<>1,则其父结点的编号为I/2;

如果2*I<=N,则其左儿子(即左子树的根结点)的编号为2*I;若2*I>N,则无左儿子;

如果2*I+1<=N,则其右儿子的结点编号为2*I+1;若2*I+1>N,则无右儿子。

4.二叉树的存储结构:

(1)顺序存储方式

type node=record

data:datatype

l,r:integer;

end;

var tr:array[1..n] of node;

(2)链表存储方式,如:

type btree=^node;

node=record

data:datatye;

lchild,rchild:btree;

end;

5.普通树转换成二叉树:凡是兄弟就用线连起来,然后去掉父亲到儿子的连线,只留下父母到其第一个子女的连线。

//////////////////////////////////////////////////////
2.
基于顺序结构的顺序查找算法

(1)类型说明

typedef struct{

KeyType key;

InfoType otherinfo; //此类型依赖于应用

}NodeType;

typedef NodeType SeqList[n+1]; //0号单元用作哨兵

(2)具体算法

int SeqSearch(Seqlist R,KeyType K)

{ //在顺序表R[1..n]中顺序查找关键字为K的结点,

//成功时返回找到的结点位置,失败时返回0

int i;

R[0].key=K; //设置哨兵

for(i=n;R[i].key!=K;i--); //从表后往前找

return i; //若i为0,表示查找失败,否则R[i]是要找的结点

} //SeqSearch
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巧师傅榴莲千层蛋糕(6寸500g)-适用对象 巧师傅 榴莲千层蛋糕 6寸 500g-马来西亚苏丹王榴莲肉,口感鲜甜软糯_百... 巧师傅榴莲千层蛋糕500g-精选苏丹王榴莲果肉,口感浓郁 巧师傅苏丹王榴莲千层蛋糕-适用对象 阿卡丽和卡特琳娜,哪一个比较好。 英雄联盟阿卡丽和卡特琳纳哪个比较好…为什么? 求大神分析 阿卡丽和卡特琳娜单挑 谁会赢? 河北5+3临床医学有哪些学校 ...块数比20多,比40少,5块5块地数正好数完,2块2块地数也正好数完?_百... ...比20小,它3个3个数或4个4个数都正好数完,这个数是多少..._百度知... 数据结构题集 c语言版 怎么样 数据结构(C语言版)题目解答 c语言题型,数据结构题 数据结构题集(c语言版)答案 微信发不了红包是怎么回事?1 为什么微信里发不了红包 如何“制造”团队凝聚力 请问如何才能有效地提高团队凝聚力,增强团队合作精神? 凝聚力比较差的团队,依靠把袖手旁观的人踢出团队,是不是凝聚力就大大增强? 作为团队领导,感到力不从心,团队的凝聚力不够,该怎么吧办呢? 怎么提高团队凝聚力 为什么团队没有凝聚力? 09年秋季女生服装搭配 惠普暗影精灵怎样调显卡性能 四面出风卡式风盘空调器是什么样的 急!饭后走半小时可以跑步吗?谢谢 吃完饭半小时后可以跑步么 饭后半小时跑步对身体好吗 什么叫做料酒? 矿用无线通信系统的安装有没有危险 (急)一道C语言数据结构习题 数据结构题目,用c语言实现。 关于c语言数据结构的一道题 黑白衣柜 书桌配什么颜色 粉红色壁纸配什么颜色书桌 跪求各位颜色搭配大师,墙面的木纹绿色,桌子是白桌,温莎椅到底用什么颜色搭配才好看,这是个儿童餐厅, 香港万豪酒店提前退房 万豪酒店第二天最晚什么时候要退房 苏州万豪酒店正常的退房时间是几点?苏州万豪酒店有事推迟退房是否加收房费? 万豪酒店 如何处理客服抱怨 万豪酒店(预付),在入住时,还需要另交押金吗 男孩发育期间补什么好 煤气罐突然漏气的原因是什么? 正在青春期发育的男孩子要怎么给他补钙,食补不要吃药。 最近半个月没用过煤气罐,阀是去年换的,今天突然漏气了,会是人为吗 男孩子正发育吃什么补钙的最好 请问,开个理发店,一天的客流量要多少个才算正常呢!请有经验的朋友这点下谢谢! 在新加坡开个快剪店,一天大概能有多少顾客 一个100平方米的理发店一般一天多少人?用水量又是多少 在理发店工作时间是不是都很长,听说一天10几个小时