数据结构
文章平均质量分 86
peersli
这个作者很懒,什么都没留下…
展开
-
基于线性探测再散列法的Hash表的平均查找时间计算
基于线性探测再散列法的Hash表的“查找成功的ASL”和“查找不成功的ASL”ASL指的是 平均查找时间关键字序列:(7、8、30、11、18、9、14)散列函数: H(Key) = (key x 3) MOD 7装载因子: 0.7处理冲突:线性探测再散列法查找成功的ASL计算方法:因为现在的数据是7个,填充因子是0.7。所以数组大小=7/0.7=10,即写出来的散列表大小为10,下标从0~9...原创 2018-06-11 20:24:12 · 5455 阅读 · 8 评论 -
二叉树的构造与遍历方法
实验三:二叉树的构造与遍历方法一、实验内容:用先序次序的方法构造一颗二叉树,并以三种遍历方式遍历次二叉树。二、实验目的:通过实验能熟练掌握二叉树的定义、性质和存储结构;二叉树的遍历和线索化及遍历算法的各种描述形式。三、实验代码:代码:(递归遍历)#include <stdio.h>#include <stdlib.h>#define ERROR 0#define O...原创 2018-06-18 21:52:54 · 2175 阅读 · 0 评论 -
栈与队列的应用
实验二:栈与队列的应用一、实验内容:利用结构具有先进后出的特性,编程实现:输入一个任意十进制数,转换为八进制数进行输出。二、实验目的:熟练掌握栈结构及其应用。三、实验代码:#include <stdio.h>#include <stdlib.h>#define ERROR 0#define OK 1#define OVERFLOW -2#define stack_...原创 2018-06-18 21:47:33 · 340 阅读 · 0 评论 -
线性表的存储结构与顺序表的存储实现
实验一:线性表的存储结构与顺序表的存储实现一、实验内容:编写一个程序实现两个有序(从小到大)顺序表合并成为一个顺序表,合并后的结果放在第一个顺序表中。二、实验目的:了解并掌握线性表的逻辑结构特性,通过实验掌握顺序存储结构的描述方式及用高级语言进行编程实现的方法。三、实验代码:#include <iostream>#include <stdio.h>#include &...原创 2018-06-18 21:45:19 · 478 阅读 · 0 评论 -
稀疏矩阵与三元组的相互变换
三元组的表示(1)、目的:对于在实际问题中出现的大型的稀疏矩阵,若用常规分配方法在计算机中储存,将会产生大量的内存浪费,而且在访问和操作的时候也会造成大量时间上的浪费,为了解决这一问题,从而善生了多种解决方案。(2)、由于其自身的稀疏特性,通过压缩可以大大节省稀疏矩阵的内存代价。具体操作是:将非零元素所在的行、列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节...原创 2018-06-18 21:13:23 · 4928 阅读 · 1 评论 -
KMP算法中next数组及改进的kmp算法nextval数组的手工计算方法
KMP算法是模式匹配专用算法。它是在已知模式串的next或nextval数组的基础上执行的。如果不知道它们二者之一,就没法使用KMP算法,因此我们需要计算它们。KMP算法由两部分组成:第一部分,计算模式串的next或nextval数组。第二部分,利用计算好的模式串的nextval数组,进行模式匹配。 KMP算法中有next数组和nextval数组之分。 他们代表的意义和作用完全一样,完全可以...原创 2018-06-17 22:53:11 · 16854 阅读 · 2 评论 -
二叉树线索化以及线索化的先序、中序、后序遍历
首先,什么是二叉树的线索化,为什么要对二叉树线索化?二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。为了保存这种在遍历中需要的信息,我们利用二叉树中指向左右子树的空指针来存放节点的前驱和后继信息n个节点的二叉树中含有n+1个空指针域。利用二叉树中的空指针...转载 2018-06-15 22:01:10 · 23350 阅读 · 5 评论 -
哈希表的常见冲突检测方法及其复杂度总结
一、哈希表1、概念 哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的速度。这个映射函数就做散列函数,存放记录的数组叫做散列表。2、散列存储的基本思路 以数据中每个元素的关键字K为自变量,通过散列函数H(k)计算出函数值,以该函数值作为一块连续存储空间的...原创 2018-06-15 21:19:57 · 12051 阅读 · 2 评论 -
数据结构问答题
1、设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。哈夫曼树不存在入度为1 的结点,所以n0=n2+1 设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(2m)个空指针域; n0=m 树的二叉链表存储结构就是孩子-兄弟表示法。 孩子-兄弟表示法:数据域是结点,如A; 有两个指针域:1)指向长子 2)指向右兄弟 哈夫曼树的孩...原创 2018-06-15 16:35:41 · 4575 阅读 · 0 评论 -
哈夫曼树以及哈夫曼编码的构造步骤
注意:哈夫曼树并不唯一,但带权路径长度一定是相同的。(1)8个结点的权值大小如下:(2)从19,21,2,3,6,7,10,32中选择两个权小结点。选中2,3。同时算出这两个结点的和5。(3)从19,21,6,7,10,32,5中选出两个权小结点。选中5,6。同时计算出它们的和11。(4)从19,21,7,10,32,11中选出两个权小结点。选中7,10。同时计算出它们的和17。(BTW:这时选出...原创 2018-06-11 20:49:05 · 118842 阅读 · 18 评论 -
数据结构考试要点
一、填空1、完全二叉树:2^(h-1)<=结点数量<= 2^h -1 (h<=(log2^ n+1)) a、二叉树:第i层至多有2^(i-1)个结点;结点数量<= 2^h -1;n0=n2 +1 ; 完全二叉树最下面一层的最左子树开始计算,如果出现偶数个结点则不存在度为1的结点,反之度为1的结点个数一定是1(或总结点数为偶) 2、单链判空:head->next=...原创 2018-06-19 12:31:00 · 755 阅读 · 0 评论