当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

西华师范大学:《算法与程序设计》课程教学资源_第五章 树和二叉树

资源类别:文库,文档格式:PDF,文档页数:96,文件大小:4.26MB,团购合买
一、树的逻辑定义和存储结构 二、二叉树的逻辑定义、存储结构 三、叉树的基本操作算法 四、树和二叉树的转换 五、哈夫曼树及其应用
点击下载完整版文档(PDF)

第5章树和二叉树 本章中主要介绍下列内容: 树的逻辑定义和存储结构 叉树的逻辑定义、存储结构 二叉树的基本操作算法 树和二叉树的转换 哈夫曼树及其应用 西师滋大学数学与信息学院 限出

ぜ5【 ᵀ঻λࣸᵀ ᴀゴЁЏ㽕ҟ㒡ϟ߫ݙᆍ˖ l ᷥⱘ䘏䕥ᅮН੠ᄬټ㒧ᵘ l Ѡঝᷥⱘ䘏䕥ᅮНǃᄬټ㒧ᵘ l Ѡঝᷥⱘ෎ᴀ᪡԰ㅫ⊩ l ᷥ੠Ѡঝᷥⱘ䕀ᤶ l જ໿᳐ᷥঞ݊ᑨ⫼ ߎ䗔

1树 5,2二叉树 53哈夫曼树及其应用 西师滋大学数学与信息学院

5.1 ᷥ 5.2 Ѡঝᷥ 5.3 જ໿᳐ᷥঞ݊ᑨ⫼

1树 5.1.1树的定义和基本运算 1.定义 树是一种常用的非线性结构。我们可以这样定 义:树是n(n≥0)个结点的有限集合。若n=0,则称 为空树;否则,有且仅有一个特定的结点被称为根, 当n>1时,其余结点被分成m(m>0)个互不相交的子 集T1,T2,…,Tm,每个子集又是一棵树。由此可以 看出,树的定义是递归。 西师滋大学数学与信息学院 网图

5.1 ᷥ 5.1.1 ᷥⱘᅮН੠෎ᴀ䖤ㅫ 1. ᅮН ᷥᰃϔ⾡ᐌ⫼ⱘ䴲㒓ᗻ㒧ᵘDŽ៥Ӏৃҹ䖭ḋᅮ Н˖ᷥᰃn˄nı0˅Ͼ㒧⚍ⱘ᳝䰤䲚ড়DŽ㢹n=0ˈ߭⿄ Ўぎᷥ˗৺߭ˈ᳝Ϩҙ᳝ϔϾ⡍ᅮⱘ㒧⚍㹿⿄Ўḍˈ ᔧn>1ᯊˈ݊ԭ㒧⚍㹿ߚ៤m˄m>0˅ϾѦϡⳌѸⱘᄤ 䲚T1ˈT2ˈ...ˈTmˈ↣Ͼᄤ䲚জᰃϔỉᷥDŽ⬅ℸৃҹ ⳟߎᷥˈⱘᅮНᰃ䗦ᔦDŽ

6|③Q (b) 图5- 西师滋大学数学与信息学院

೒ 5-1 K L M E F G H I J B C D A A Æ (a) (b) (c)

结点数据元素的内容及其指向其子树根的分支统 称为结点。 结点的度结点的分支数。 终端结点(叶子)度为0的结点。 非终端结点度不为0的结点。 结点的层次树中根结点的层次为1,根结点子树 的根为第2层,以此类推。 树的度树中所有结点度的最大值。 树的深度树中所有结点层次的最大值。 有序树、无序树如果树中每棵子树从左向右的排 列拥有一定的顺序,不得互换,则称为有序树,否则 称为无序树。 西师滋大学数学与信息学院

㒧⚍ ᭄᥂ܗ㋴ⱘݙᆍঞ݊ᣛ৥݊ᄤᷥḍⱘߚᬃ㒳 ⿄Ў㒧⚍DŽ 㒧⚍ⱘᑺ 㒧⚍ⱘߚᬃ᭄DŽ 㒜ッ㒧⚍˄৊ᄤ˅ ᑺЎ0ⱘ㒧⚍DŽ 䴲㒜ッ㒧⚍ ᑺϡЎ0ⱘ㒧⚍DŽ 㒧⚍ⱘሖ⃵ ᷥЁḍ㒧⚍ⱘሖ⃵Ў1ˈḍ㒧⚍ᄤᷥ ⱘḍЎ㄀2ሖˈҹℸ㉏᥼DŽ ᷥⱘᑺ ᷥЁ᠔᳝㒧⚍ᑺⱘ᳔໻ؐDŽ ᷥⱘ⏅ᑺ ᷥЁ᠔᳝㒧⚍ሖ⃵ⱘ᳔໻ؐDŽ ᳝ᑣᷥǃ᮴ᑣᷥ བᵰᷥЁ↣ỉᄤᷥҢᎺ৥েⱘᥦ ߫ᢹ᳝ϔᅮⱘ乎ᑣˈϡᕫѦᤶˈ߭⿄Ў᳝ᑣᷥˈ৺߭ ⿄Ў᮴ᑣᷥDŽ

森林是m(m≥0)棵互不相交的树的集合。 在树结构中,结点之间的关系又可以用家族关系 描述,定义如下: 孩子、双亲结点子树的根称为这个结点的孩 子,而这个结点又被称为孩子的双亲。 子孙以某结点为根的子树中的所有结点都被称 为是该结点的子孙。 祖先从根结点到该结点路径上的所有结点 兄弟同一个双亲的孩子之间互为兄弟。 堂兄弟双亲在同一层的结点互为堂兄弟。 西师滋大学数学与信息学院

Ểᵫ ᰃm˄mı0˅ỉѦϡⳌѸⱘᷥⱘ䲚ড়DŽ ೼ᷥ㒧ᵘЁˈ㒧⚍П䯈ⱘ݇㋏জৃҹ⫼ᆊᮣ݇㋏ ᦣ䗄ˈᅮНབϟ˖ ᄽᄤǃঠ҆ 㒧⚍ᄤᷥⱘḍ⿄Ў䖭Ͼ㒧⚍ⱘᄽ ᄤˈ㗠䖭Ͼ㒧⚍জ㹿⿄Ўᄽᄤⱘঠ҆DŽ ᄤᄭ ҹᶤ㒧⚍ЎḍⱘᄤᷥЁⱘ᠔᳝㒧⚍䛑㹿⿄ Ўᰃ䆹㒧⚍ⱘᄤᄭDŽ ⼪ܜ Ңḍ㒧⚍ࠄ䆹㒧⚍䏃ᕘϞⱘ᠔᳝㒧⚍DŽ ܘᓳ ৠϔϾঠ҆ⱘᄽᄤП䯈ѦЎܘᓳDŽ ූܘᓳ ঠ҆೼ৠϔሖⱘ㒧⚍ѦЎූܘᓳDŽ

2.树的基本运算 常用操作: 1)构造一个树 Createtree(T 2)清空以T为根的树 Cleartree( (3)判断树是否为空 Treeempty(T (4)获取给定结点的第i个孩子 Childe(T, node i) (5)获取给定结点的双亲 Parent(T,node) (6)遍历树 Traverse(T) 对树遍历的主要目的是将非线性结构通过遍历过程 线性化,即获得一个线性序列。树的遍历顺序有两 种,一种是先序遍历,即先访问根结点,然后再依次 用同样的方法访问每棵子树;另一种是后序遍历,即 先依 西师滋大学数学与信息学院

2. ᷥⱘ෎ᴀ䖤ㅫ ᐌ⫼᪡԰˖ ˄1˅ ᵘ䗴ϔϾᷥ CreateTree (T) ˄2˅⏙ぎҹTЎḍⱘᷥ ClearTree(T) ˄3˅߸ᮁᷥᰃ৺Ўぎ TreeEmpty(T) ˄4˅㦋প㒭ᅮ㒧⚍ⱘ㄀iϾᄽᄤ Child(T,node,i) ˄5˅㦋প㒭ᅮ㒧⚍ⱘঠ҆ Parent(T,node) ˄6˅䘡ग़ᷥTraverse(T) ᇍᷥ䘡ग़ⱘЏ㽕Ⳃⱘᰃᇚ䴲㒓ᗻ㒧ᵘ䗮䖛䘡ग़䖛⿟ 㒓ᗻ࣪ेˈ㦋ᕫϔϾ㒓ᗻᑣ߫DŽᷥⱘ䘡ग़乎ᑣ᳝ϸ ⾡ˈϔ⾡ᰃܜᑣ䘡ग़ˈेܜ䆓䯂ḍ㒧⚍ˈ✊ৢݡձ⃵ ⫼ৠḋⱘᮍ⊩䆓䯂↣ỉᄤᷥ˗঺ϔ⾡ᰃৢᑣ䘡ग़ˈे ձܜ

5.1.2树的存储结构 1.双亲表示法 树的双亲表示法主要描述的是结点的双亲关系。 西师滋大学数学与信息学院

5.1.2 ᷥⱘᄬټ㒧ᵘ 1. ঠ҆㸼⼎⊩ ᷥⱘঠ҆㸼⼎⊩Џ㽕ᦣ䗄ⱘᰃ㒧⚍ⱘঠ҆݇㋏DŽ

下标 info paren 012345678 ABCDEFGH 000 G)④ 3666 图5-3 西师滋大学数学与信息学院

೒ 5-3 ϟᷛ info paren t 0 A -1 1B 0 2C 0 3D 0 4E 1 5F 1 6G 3 7H 6 8I 6 9J 6 H I J E F G B C D A A B C D E F G HIJ

类型定义 #define maX Tree node size 100 typedef struct i TEntry Type info; int parent; 3 ParentNode typedef struct ParentNode itemMAX TREE NODE SIZE ntn;/树中当前的结点数目 3 Parenttree; 西师滋大学数学与信息学院

㉏ൟᅮН˖ #define MAX_TREE_NODE_SIZE 100 typedef struct { TEntryType info; int parent; } ParentNode; typedef struct { ParentNode item[MAX_TREE_NODE_SIZE]; int n; //ᷥЁᔧࠡⱘ㒧⚍᭄Ⳃ }ParentTree;

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共96页,可试读20页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有