知识大全 第9章查找(二)习题练习
Posted 知
篇首语:真正的知识是道德。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 第9章查找(二)习题练习相关的知识,希望对你有一定的参考价值。
设散列表长度为 散列函数h(x)=x% 给定的关键字序列为 试画出分别用拉链法和线性探查法解决冲突时所构造的散列表 并求出在等概率情况下 这两种方法查找成功和失败时的平均查找长度 请问装填因子的值是什么?
假定有k个关键字互为同义词 若用线性探查法把这些同义词存入散列表中 至少要进行多少次探查?
为什么说当装填因子非常接近 时 线性探查类似于顺序查找?为什么说当装填因子比较小(比如α= 左右)时 散列查找的平均查找时间为O( )?
设顺序表中关键字是递增有序的 试写一顺序查找算法 将哨兵设在表的高下标端 然后求出等概率情况下查找成功与失败时的ASL 试写出二分查找的递归算法
试写一算法判别给定的二叉树是否为二叉排序树 设此二叉树以二叉链表为存储结构 且树中结点的关键字均不相同
试写一递归算法 从大到小输出二叉排序树中所有其值不小于x的关键字 要求算法的时间为O(lgn+m) n为树中结点数 m为输出关键字个数(提示 先遍历右子树 后遍历左子树)
写一个遍历B 树的算法 使输出的关键字序列递增有序 算法中的读盘操作可假定为DiskRead
若采用除余法作为散列函数 线性探查解决冲突 则 节中通用的散列表查找算法可改写为对线性探查专用的查找算法 int HashSearch(HashTable T KeyType K int *pos) int i= ;//记录探查次数 *pos=K%m; //散列函数值作为第一个散列地址 while(i++<m) //最多探查m次 if(T[*pos] key==K) return ;//查找成功返回 if(T[*pos] key==NIL) return ;//查找失败返回 *pos=(*pos+ )%m;//用线性探查法求下一个探查地址 return ;//查找失败 且表满 //HashSearch 假设散列表上的删除操作已将结点的关键字标记为DELETED(例如 不妨设DELETED为 ) 请修改上述散列表上的查找算法及插入算法HashInsert 使之能正确地查找和插入
cha138/Article/program/sjjg/201311/23279相关参考
对含有n个互不相同元素的集合同时找最大元和最小元至少需进行多少次比较? 若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找试在下述两种情况下分别讨论两者在等概率时的平均查找长度&n
对含有n个互不相同元素的集合同时找最大元和最小元至少需进行多少次比较? 答 设变量max和min用于存放最大元和最小元(的位置)第一次取两个元素进行比较大的放入max小的放入min从第次开
常见的文件组织方式有哪几种?各有何特点?文件上的操作有哪几种?如何评价文件组织的效率?索引文件散列文件和多关键字文件适合存放在磁带上吗?为什么?设有一个职工文件其记录格式为(职工号姓名性别职务年龄工资
常见的文件组织方式有哪几种?各有何特点?文件上的操作有哪几种?如何评价文件组织的效率?答 常用的文件组织方式有顺序文件索引文件散列文件和多关键字文件 ●顺序文件的
试描述头指针头结点开始结点的区别并说明头指针和头结点的作用答 开始结点是指链表中的第一个结点也就是没有直接前趋的那个结点 链表的头指
将哨兵放在R[n]中被排序的记录放在R[n]中重写直接插入排序算法解 重写的算法如下 voidInsertSort(SeqListR) //对顺序表中记录
以关键字序列()为例分别写出执行以下排序算法的各趟排序结束时关键字序列的状态 ()直接插入排序()希尔排序()冒泡排序()快速排序 ()直接选择排序()堆排序()归并排序()基数排序 上述方法中哪些
一基础知识题试描述头指针头结点开始结点的区别并说明头指针和头结点的作用何时选用顺序表何时选用链表作为线性表的存储结构为宜?在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因
将哨兵放在R[n]中被排序的记录放在R[n]中重写直接插入排序算法以单链表作为存储结构实现直接插入排序算法 设计一算法使得在尽可能少的时间内重排数组将所有取负值的关键字放在所有取非负值的关键
以关键字序列()为例分别写出执行以下排序算法的各趟排序结束时关键字序列的状态 ()直接插入排序()希尔排序()冒泡排序()快速排序 ()直接选择排序()堆排序()归并排序()基数排序 上述方法中哪些