- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构复习03106
2. 内排序 强调各种排序方法的比较 是否需要比较 排序方法的区别 时间复杂度 空间复杂度 (4)二叉树的遍历 ■ 先序遍历 ■ 中序遍历 ■ 后序遍历 通常用递归算法实现 模块2:树形结构 例 假设二叉树采用二叉链存储结构存储,试设计一个算法,输出一棵给定二叉树的所有叶子结点。 解:输出一棵二叉树的所有叶子结点的递归模型f()如下: f(b):不做任何事件 若b=NULL f(b):输出*b结点的data域 若*b为叶子结点 f(b):f(b-lchild);f(b-rchild) 其他情况 模块2:树形结构 void DispLeaf(BTNode *b) { if (b!=NULL) { if (b-lchild==NULL b-rchild==NULL) printf(%c ,b-data); DispLeaf(b-lchild); DispLeaf(b-rchild); } } 模块2:树形结构 先序遍历思想 2. 哈夫曼树 (1) 哈夫曼树的定义 WPL最小,没有单分支结点即n1=0 模块2:树形结构 (2)哈夫曼树的构造过程 (3)哈夫曼编码的构造过程 模块2:树形结构 ■ 顶点的度、入度和出度 ■ 完全图 ■ 子图 ■ 路径和路径长度 ■ 连通、连通图和连通分量 ■ 强连通图和强连通分量 ■ 权和网 模块3:图形结构 (1)图的基本概念 (2)图的存储结构 ■ 邻接矩阵存储方法 掌握两种存储方法的优缺点,同一种功能在不同存储结构上的实现算法。 ■ 邻接表存储方法 模块3:图形结构 (3)图的遍历 ■ 深度优先搜索遍历 离初始点越远越优先访问。 1 2 6 7 3 5 4 访问序列:1,2,3,4,5,6,7 模块3:图形结构 void DFS(ALGraph *G,int v) { ArcNode*p;Visited[v]=1; /*置已访问标记*/ printf(%d ,v); /*输出被访问顶点的编号*/ p=G-adjlist[v].firstarc; while (p!=NULL) { if (visited[p-adjvex]==0) DFS(G,p-adjvex); p=p-nextarc; } } 模块3:图形结构 1 2 6 7 3 5 4 ■ 广度优先搜索遍历 离初始点越近越优先访问。 访问序列:1,2,6,7,3,5,4 模块3:图形结构 例 设计一个算法在单链表中查找元素值为e的结点序号的算法LocateElem(L,e)。 思路:在单链表L中从头开始找第1个值域与e相等的结点,若存在这样的结点,则返回位置,否则返回0。 int LocateElem(LinkList *L,ElemType e) { LinkList *p=L-next;int n=1; while (p!=NULL p-data!=e) { p=p-next; n++; } if (p==NULL) return(0); else return(n); } 2. 栈 (1) 栈的定义 栈是一种先进后出表。插入删除受限的线性表。 栈的基本运算:进栈,出栈。 逻辑结构 模块1:线性结构 (2)顺序栈 typedef struct { ElemType elem[MaxSize]; int top; /*栈指针*/ } SqStack; 存储结构之一 模块1:线性结构 栈空条件:s.top==-1 栈满条件:s.top==MaxSize-1 进栈:top++;s.data[s.top]=e; 出栈:e=s.data[s.top];s.top—; ? 顺序栈的4要素: 模块1:线性结构 (3)链栈 typedef struct linknode { ElemType data; /*数据域*/ struct linknode *ne
文档评论(0)