《数据结构》课程教学资源(PPT课件讲稿)第七章 搜索结构第七章 搜索结构

第七章披索结构 静态搜索结尥 二叉搜索树 AVL树
第七章 搜索结构 • 静态搜索结构 • 二叉搜索树 • AVL树 1

静态披索表 搜索( earch)的概念 所谓搜索,就是在数据集合中寻找满足某种 条件的数据对象。 搜索的结果通常有两种可能: >搜索成功,即找到满足条件的数据对象。 这时,作为结果,可报告该对象在结构中 的位置,还可给出该对象中的具体信息。 >搜索不成功,或搜索失败。作为结果,应 报告一些信息,如失败标志、位置等
静态搜索表 2 搜索(Search)的概念 ◼ 所谓搜索,就是在数据集合中寻找满足某种 条件的数据对象。 ◼ 搜索的结果通常有两种可能: ➢搜索成功,即找到满足条件的数据对象。 这时,作为结果,可报告该对象在结构中 的位置, 还可给出该对象中的具体信息。 ➢搜索不成功,或搜索失败。作为结果,应 报告一些信息, 如失败标志、位置等

通常称用于搜索的数据集合为搜索结构,它是 由同一数据类型的对象或记录)组成。 在每个对象中有若干属性,其中有一个属性 其值可唯一地标识这个对象。称为关键码。使 用基于关键码的搜索,搜索结果应是唯一的。 但在实际应用时,搜索条件是多方面的,可以 使用基于属性的搜索方法,但搜索结果可能不 唯
• 通常称用于搜索的数据集合为搜索结构,它是 由同一数据类型的对象(或记录)组成。 • 在每个对象中有若干属性,其中有一个属性, 其值可唯一地标识这个对象。称为关键码。使 用基于关键码的搜索,搜索结果应是唯一的。 但在实际应用时,搜索条件是多方面的,可以 使用基于属性的搜索方法,但搜索结果可能不 唯一。 3

实施搜索时有两种不同的环境。 ◆静态环境,搜索结构在插入和删除等操作 的前后不发生改变。一静态搜索表 动态环境,为保持较高的搜索效率,搜索结 构在执行插入和删除等操作的前后将自动 进行调整,结构可能发生变化 动态搜索表
• 实施搜索时有两种不同的环境。 ◆ 静态环境,搜索结构在插入和删除等操作 的前后不发生改变。⎯ 静态搜索表 ◆ 动态环境,为保持较高的搜索效率, 搜索结 构在执行插入和删除等操作的前后将自动 进行调整,结构可能发生变化。 ⎯ 动态搜索表 4

静态披索表 在静态搜索表中,数据元素存放于数组中, 利用数组元素的下标作为数据元素的存放地 址。搜索算法根据给定值k,在数组中进行 搜索。直到找到k在数组中的存放位置或可 确定在数组中找不到k为止
静态搜索表 • 在静态搜索表中,数据元素存放于数组中, 利用数组元素的下标作为数据元素的存放地 址。搜索算法根据给定值 k,在数组中进行 搜索。直到找到 k 在数组中的存放位置或可 确定在数组中找不到 k 为止。 5

数据表与搜索表的类定义 #include #include const int defaultsize =100 template class datalist /数据表类的前视定义K为 关键码对应的类,E为其他属性对应的类 template class dataNode i /数据表中结点类的定义 friend class datalist /)声明其友元类为 datalist
数据表与搜索表的类定义 #include #include const int defaultSize = 100; template class dataList; //数据表类的前视定义, K为 关键码对应的类,E为其他属性对应的类 template class dataNode { //数据表中结点类的定义 friend class dataList; //声明其友元类为dataList 6

public: dataNode(const K x, const E e) key (x), other(e)i 构造函数 getKey( const{ return key;}读取关键码 void setKey(Kx){key=x;}∥修改关键码 private: k key /关键码域 E other: ∥其他域(视问题而定)
public: dataNode (const K x, const E e) : key(x), other(e) { } //构造函数 K getKey() const { return key; } //读取关键码 void setKey (K x) { key = x; } //修改关键码 private: K key; //关键码域 E other; //其他域(视问题而定) }; 7

template class datalist i /数据表类定义 public: datalist (int sz = defaultsize) ArraySize(sz), Currentsize(o)t Element= new datanode[sz]i; assert(Element=NULl); dataList( datalist&R);∥复制构造函数 virtual~ dataList{ delete[ Element;}∥析构函数 virtual int Lengthoi return Currentsize; j 求表的长度 virtual k getKey (int 1)const i ∥提取第讣个(从1开始)元素的key值
template class dataList { //数据表类定义 public: dataList (int sz = defaultSize) : ArraySize(sz), CurrentSize(0) { Element = new dataNode[sz]; assert (Element != NULL); } dataList (dataList& R); //复制构造函数 virtual ~dataList() { delete []Element; } //析构函数 virtual int Length() { return CurrentSize; } //求表的长度 virtual K getKey (int i) const { //提取第 i个(从1开始)元素的key值 8

assert(i>0&i0 &i& outlist); /输出
assert (i > 0 & i 0 & i & OutList); //输出 9

friend istream& operator >>(istream& in datalist& InList) /输入 p rotected datanode* lement:数据表存储数组 int ArraySize, Currentsize; 数组最大长度和当前长度 S
friend istream& operator >> (istream& in, dataList& InList); //输入 protected: dataNode *Element; //数据表存储数组 int ArraySize, CurrentSize; //数组最大长度和当前长度 }; 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《网络营销实务》课程教学资源(PPT课件讲稿)第二章 网络营销环境分析.ppt
- 江苏大学:《面向对象建模技术》课程教学资源(PPT课件讲稿)第2章 用例图.ppt
- 《计算机网络》课程教学大纲(适用专业:信息与计算科学).pdf
- 上海交通大学:云安全(PPT讲稿)Cloud Security.pptx
- 《数据结构》课程教学资源(PPT课件讲稿)第六章 查找.ppt
- 《人工智能技术导论》课程教学资源(PPT课件讲稿)第2章 逻辑程序设计语言.ppt
- 西安电子科技大学:《数据库系统 DataBase System》课程教学资源(PPT课件讲稿)Unit 3 SQL.ppt
- 中国科学技术大学:《现代密码学理论与实践》课程教学资源(PPT课件讲稿)第4章 有限域(第五版).pptx
- 清华大学:《计算机导论》课程电子教案(PPT教学课件)第3章 计算机基础知识.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第六版,PPT课件讲稿)第六章 应用层.pptx
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 用数组处理批量数据.pptx
- 西安电子科技大学:《数据库系统 DataBase System》课程教学资源(PPT课件讲稿)Unit 2 The Relational Model.ppt
- 西安电子科技大学:《Mobile Programming》课程PPT教学课件(Android Programming)Lecture 2 Intro to Java Programming.pptx
- 《计算机网络》课程教学资源(考试大纲)计算机网络考试大纲.doc
- 《数据结构与算法》课程教学资源(PPT课件讲稿)第三章 树 3.1 树的有关定义.ppt
- 西安培华学院:《微机原理》课程教学资源(PPT课件讲稿)第一章 绪论.ppt
- 《单片机原理及应用》课程PPT教学课件(C语言版)第4章 C51程序设计入门(单片机C语言及程序设计).ppt
- 《Visual Basic程序设计》课程教学资源(PPT课件讲稿)第四章 VB的基本语句.pps
- 哈尔滨工业大学:再探深度学习词向量表示(PPT课件讲稿)Advanced word vector representations(主讲人:李泽魁).ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)文件系统.ppt
- 丽水职业技术学院:《电子商务实训》课程教学资源(PPT课件讲稿)电子商务交易模式之“B2B”——电子合同模式.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第六章 电子商务支付技术.ppt
- 浙江长征职业技术学院:计算机信息管理专业课程教学大纲汇编.doc
- 北京林业大学:《深度学习》课程PPT教学课件(Deep Learning)第二章 神经网络与优化方法(主讲:孙钰).pptx
- 《Advanced Artificial Intelligence》课程PPT教学课件(高级人工智能)Lecture 5 Neural Networks.pptx
- 《Advanced Artificial Intelligence》课程PPT教学课件(高级人工智能)Lecture 3 Decision Tree.pptx
- 《Advanced Artificial Intelligence》课程PPT教学课件(高级人工智能)Lecture 6 Convolutional Neural Network.pptx
- 《操作系统》课程教学资源(PPT课件讲稿)文件管理 File Management.ppt
- 《操作系统 Operating System》课程电子教案(PPT课件讲稿)第一章 简介.ppt
- 《计算机辅助设计——Photoshop制图》课程标准.pdf
- 河南中医药大学(河南中医学院):《计算机网络》课程教学资源(PPT课件讲稿)第六章 应用层.ppt
- 河南中医药大学:《网络技术实训》课程教学资源(PPT课件讲稿)第4讲 网络管理实训内容(上).pptx
- 《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第8讲 数据库恢复技术.ppt
- 新乡学院:《数据库原理》课程电子教案(PPT课件)第3章 关系数据库.ppt
- 新乡学院:《计算机网络》课程教学大纲(适用专业:信息与计算科学).pdf
- 哈尔滨工业大学:《中文信息处理》课程教学资源(PPT课件讲稿)句法分析(张宇).ppt
- 隐马尔科夫模型和词性标注(PPT课件讲稿).ppt
- 有限元分析 ANSYS:Modeling Turbulent Flows(PPT讲稿)Introductory FLUENT Training.ppt
- Fluent:《GAMBIT建模教程》教学资源(PPT讲稿)Geometry Operations in GAMBIT.ppt
- 香港科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件)Chapter 1 Introduction of computer networking.ppsx