收藏 分享(赏)

中文版教材主要数据结构.ppt

上传人:dreamzhangning 文档编号:3331112 上传时间:2018-10-14 格式:PPT 页数:25 大小:445KB
下载 相关 举报
中文版教材主要数据结构.ppt_第1页
第1页 / 共25页
中文版教材主要数据结构.ppt_第2页
第2页 / 共25页
中文版教材主要数据结构.ppt_第3页
第3页 / 共25页
中文版教材主要数据结构.ppt_第4页
第4页 / 共25页
中文版教材主要数据结构.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、线性表的顺序存储结构,typedef struct SqList; / 俗称 顺序表,#define LIST_INIT_SIZE 100 / 线性表存储空间的初始分配量 #define LISTINCREMENT 10 / 线性表存储空间的分配增量,ElemType *elem; / 存储空间基址,int length; / 当前长度,int listsize; / 当前分配的存储容量 / (以sizeof(ElemType)为单位),Typedef struct LNode ElemType data; / 数据域struct Lnode *next; / 指针域 LNode, *Link

2、List;,线性表的链式存储结构,LinkList L; / L 为单链表的头指针,#define MAX_TREE_SIZE 100 / 二叉树的最大结点数 typedef TElemType SqBiTreeMAX_TREE_SIZE; / 0号单元存储根结点 SqBiTree bt;,二叉树的顺序存储表示,例如:,A,B,C,D,E,F,A B D C E F,0 1 2 3 4 5 6 7 8 9 10 11 12 13,1,4,0,13,2,6,A,B,C,D,E,F,G,A BCE DFG,root,A BCE DFG,树的二叉链表 (孩子-兄弟)存储表示法,哈 夫 曼 树 与 哈

3、 夫 曼 编 码,最优树的定义如何构造最优树前缀编码,最优树的定义,树的路径长度定义为:树中每个结点的路径长度之和。,结点的路径长度定义为:从根结点到该结点的路径上分支的数目。,树的带权路径长度定义为:树中所有叶子结点的带权路径长度之和WPL(T) = wklk (对所有叶子结点)。,在所有含 n 个叶子结点、并带相同权 值的 m 叉树中,必存在一棵其带权路径 长度取最小值的树,称为“最优树”。,例如:,2,7 9,7,5,4,9,2,WPL(T)= 72+52+23+43+92 =60,WPL(T)= 74+94+53+42+21 =89,5,4,根据给定的 n 个权值 w1, w2, ,

4、wn,构造 n 棵二叉树的集合F = T1, T2, , Tn,其中每棵二叉树中均只含一个带权值 为 wi 的根结点,其左、右子树为空树;,如何构造最优树,(1),(赫夫曼算法) 以二叉树为例:,在 F 中选取其根结点的权值为最小的两棵二叉树,分别作为左、 右子树构造一棵新的二叉树,并置这棵新的二叉树根结点的权值为其左、右子树根结点的权值之和;,(2),从F中删去这两棵树,同时加入刚生成的新树;,重复 (2) 和 (3) 两步,直至 F 中只含一棵树为止。,(3),(4),9,例如: 已知权值 W= 5, 6, 2, 9, 7 ,5,6,2,7,5,2,7,6,9,7,6,7,13,9,5,2

5、,7,6,7,13,9,5,2,7,9,5,2,7,16,6,7,13,29,0,0,0,0,1,1,1,1,00,01,10,110,111,指的是,任何一个字符的编码都 不是同一字符集中另一个字符的编码 的前缀。,前缀编码,利用赫夫曼树可以构造一种不等长的二进制编码,并且构造所得的赫夫曼编码是一种最优前缀编码,即使所传电文的总长度最短。,Aij=,0 (i,j)VR,1 (i,j)VR,图的数组(邻接矩阵)存储表示,B,A,C,D,F,E,定义:矩阵的元素为,有向图的邻接矩阵为非对称矩阵,A,B,E,C,F,typedef struct ArcCell / 弧的定义VRType adj;

6、/ VRType是顶点关系类型。/ 对无权图,用1或0表示相邻否;/ 对带权图,则为权值类型。InfoType *info; / 该弧相关信息的指针 ArcCell, AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;,typedef struct / 图的定义VertexType / 顶点信息vexsMAX_VERTEX_NUM; AdjMatrix arcs; / 弧的信息 int vexnum, arcnum; / 顶点数,边数 GraphKind kind; / 图的种类标志 MGraph;,图的结构定义(邻接矩阵),0 A 1 4 1 B 0 4 5 2 C

7、 3 5 3 D 2 5 4 E 0 1 5 F 1 2 3,B,A,C,D,F,E,图的邻接表存储表示,1 4,2,3,0 1,2,0 1 2 3 4,ABCDE,有向图的邻接表,A,B,E,C,F,可见,在有向图的邻接表中不易找到指向该顶点的弧。,A,B,E,C,D,有向图的逆邻接表,A B C D E,3,0,3,4,2,0,0 1 2 3 4,在有向图的邻接表中,对每个顶点,链接的是指向该顶点的弧。,typedef struct ArcNode int adjvex; / 该弧所指向的顶点的位置struct ArcNode *nextarc; / 指向下一条弧的指针InfoType *info; / 该弧相关信息的指针 ArcNode;,adjvex nextarc info,弧的结点结构,typedef struct VNode VertexType data; / 顶点信息ArcNode *firstarc; / 指向第一条依附该顶点的弧 VNode, AdjListMAX_VERTEX_NUM;,data firstarc,顶点的结点结构,typedef struct AdjList vertices;int vexnum, arcnum; int kind; / 图的种类标志 ALGraph;,图的结构定义(邻接表),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报