数据结构第8章讲解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第8章讲解

第八章 查找;8.1 概述;3、查找;4、查找表的分类;5、平均查找长度;6、查找的基本方法:;8.2 基于线性表的查找;#define MAXSIZE 1000 Typedef int KeyType typedef struct { KeyType key; OtherType other_data; } RecordType; typedef struct { RecordType r[MAXSIZE+1]; /* r[0]为工作单元 */ int length; } SeqRList; ;顺序查找过程示例:;2、顺序查找算法;例:;3、顺序查找的时间复杂度分析;二、折半查找法(二分搜索法);例如:;2、折半查找算法;3、折半查找时间复杂度分析; 一般情况, 表长为 n 的折半查找判定树的深度和含有 n 个结点的完全二叉树的深度相同。 ;三、索引查找;例:;分块查找过程;分块查找时间复杂度分析;线性表的三种查找方法比较;8.3 基于树的查找法;8. 3. 1 二叉排序树(二叉查找树);一、定义:;例如:;typedef struct Node { KeyType key ; /*关键字的值*/ …… struct node *Lchild,*Rchild;/*左右指针*/ }BSTNode,*BSTree; ;二、查找;例如:;从上述查找过程可见:;BSTree SearchBST(BSTree bst, KeyType K) {if (!bst) return NULL; else if (bst- key==K) return bst; else if (K bst- key) return SearchBST(bst-lchild, key); else return SearchBST(bst-rchild,key); } ;BSTree SearchBST(BSTree bst, KeyType K) { BSTree q; q=bst; while(q) {if (q-key==K) return q; if (K q-key) q=q-lchild; else q=q-rchild; } return NULL; };三、插入;void InsertBST(BSTree *bst, KeyType K) { BiTree s; if (*bst==NULL) {s=(BSTree)malloc(sizeof(BSTNode)); s- key=K; *bst=s; s-lchild=NULL; s-rchild=NULL;} else if (K (*bst)-key) InsertBST(((*bst)-lchild), K); else if (K (*bst)-key) InsertBST(((*bst)-rchild), K); } ;二叉排序树的生成算法;例如:; 对同样一组元素值,如果输入的顺序不同,所建的二叉排序树形态也不同。;四、删除;(1)被删除的结点是叶子结点;(2)被删除结点只有左子树或只有右子树;(3)被删除的结点既有左子树也有右子树;方法二:;例:方法二;二叉排序树删除算法;else /*p有左子树*/ { q=p;s=p-lchild; while(s-rchild) {q=s;s=s-rchild;} if(q==p) q-lchild=s-lchild ; else q-rchild=s-lchild; p-key=s-key; free(s); } return bst;} ;五、二叉排序树的查找性能; 假设每个元素的查找概率相等,则它们的平均查找长度分别是: ;8.3.2 平衡二叉树;例如:;例如:;2、平衡二叉排序树的构造;例: 输入(13, 24, 37, 90, 53

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档