【BigHereo 48】---DataStructure---查找(六)
来源:互联网 发布:上海java培训哪家好 编辑:程序博客网 时间:2024/06/05 21:13
DataStructure---查找(六)
一,【前言】
数据结构中,我们之前通过宏观学习基本的数据结构: 队列, 树, 图,从今天开始, 我们将开始学习对数据结构进行的操作: 查找. 其中查找分为静态查找和动态查找, 下面我们就通过几个简单的问题开始了解一下对数据结构的操作;
1,对数据结构的操作有静态和动态, 分别是那些?
2, 二分查找的前提是是什么?
3,索引顺序表的查找是怎么查找的?
4,二分, 索引, 顺序等,平均查找长度最好的是哪个?
5,怎么构造平衡二叉树?
二,【详情】
1,对数据结构的操作有静态和动态, 分别是那些?
解答: 静态的有: 读操作,也即查; 动态的有插入和删除操作.
2, 二分查找的前提是是什么?
解答: 二分查找前提是所有的记录数据必须是有序的, 且顺序存储在内存中
3,索引顺序表的查找是怎么查找的?
解答:索引查找也叫分块查找, 包含索引表和顺序表, 现在索引表中确定查找范围,再去顺序表中查.
4,二分, 索引, 顺序等,平均查找长度最好的是哪个?
解答: 最好的是二分查找
5,怎么构造平衡二叉树?
6,顺序表查找平均长度是多少?
解答: 查找长的ASL: (n+1)/2
7,顺序表查找的代码怎么写?
int SearchSqTable(SqTable T, KeyTypekey){ T.eleme[0].key=key;//设立岗哨 i=T.n; while(T.elem[i].key !=key) i--; return i;}
8,二分查找的平均长度怎么计算?
解答: 平均查找长度ASL: (n+1)/n log2(n+1)-1
9,二分查找平均查找长度代码怎么表示?
intSearchBin(SqTable T,KeyType key){ int low, high; low=1; high=T.n; //第0个为岗哨 while(low <=high) { mid=(low+high)/2; if(key==T.elem[mid].key) return mid; else if(key<T.elem[mid].key)high=mid-1; else low=mid + 1; } return 0;}
10.什么是二叉排序树?
解答: 概念
(1)小于根; 根小于右; 所有的子树满足前两条--似中序, 键值升
(2子节点高度差绝对值小于等于 1---平衡二叉树
11, 用代码怎么进行二叉树的遍历?
解答: 写代码前, 必须先宏观的理解要写的逻辑, 这里的逻辑怎么写呢?
接下来代码就相当的容易了:
typedef struct btnode{ keyType key; struct btnode *lchild; *rchild;}BSTNode, *BinTree; BinTree bst;BinTreeSearchBST(BiTree bst, keyType key) { if(bst==null) return null; else if(key==best->key) return bst; else if(key< bst->key) returnSearchBST(bst->lchild. key) else return SearchBST(bst->rchild, key);}
12,二叉排序树平均查找长度怎么算?
解答: 平均查找长度O(log2n)---二叉树
13,什么是平衡二叉树?
解答: 概念
(1)首先这是二叉树
(2)每子节点高度差绝对值小于等于 1
14,散列表的目的是什么?
解答: 目的
(1)如何构造"均匀的"散列函数?
(2)用什么法有效解决冲突?
15,如何构造”均匀的”散列函数?
16,用什么方法能有效解决冲突呢?
三,【小结】
通过这一博文的总结, 知道了对数据结构操作的查找, 有静态查找和动态查找, 其中静态查找又有顺序表,二分查找和索引表的查找; 动态查找中有二叉排序树, 平衡二叉树和散列表的查找. 这些讲的都是对数据结构操作的一个, 还有一个操作是什么呢? 另一个对数据结构的操作就是 排序, 下一博文中, 我将对排序进行总结,敬请期待.
- 【BigHereo 48】---DataStructure---查找(六)
- 【BigHereo 44】---DataStructure---队列(二)
- 【BigHereo 22】---DataStructure---宏观理论(一)
- 【BigHereo 45】---DataStructure---树的基础(三)
- 【BigHereo 46】---DataStructure---线索二叉树(四)
- 【BigHereo 47】---DataStructure---数据结构之图(五)
- 【BigHereo 49】---DataStructure---排序算法(七)
- 【BigHereo 50】---Datastructure---数据结构大总结(八)
- DataStructure-8-查找技术
- DataStructure-8.3-散列表的查找技术
- useful datastructure:
- All DataStructure
- Game - datastructure
- 【datastructure】栈。
- Python4:DataStructure
- LeetCode-DataStructure
- 六种查找算法
- 数据结构实验之查找六:顺序查找
- Tomcat安装及配置
- android app清理缓存
- hash算法总结
- 前端笔记
- F-One在汽车行业如何善用“数据”做营销与财务?
- 【BigHereo 48】---DataStructure---查找(六)
- Oracle的表操作——主键约束
- 网络安全组(NSG)简介
- 『机器学习实战』使用朴素贝叶斯过滤垃圾邮件
- Java、web的一些面试知识点总结
- 老郭的《Dalvik虚拟机垃圾收集(GC)过程分析》
- mysql基础,新建数据库,新建表
- 双向链表
- Android KeyCode列表