
数据结构
文章平均质量分 86
苡茹
这个作者很懒,什么都没留下…
展开
-
静态顺序表的基本操作
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。顺序表的基本操作:seqlist.h#...原创 2018-03-23 16:37:19 · 381 阅读 · 0 评论 -
哈希扩展---布隆过滤器(bloom filter)
哈希扩展---布隆过滤器(bloom filter)1>认识布隆过滤器:可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢(O(n),O(logn))。不过世界上还有一种叫作散列表(又叫哈希表,Hash table)的数据结构。它可以通过一个Hash函数...原创 2018-05-23 11:02:36 · 301 阅读 · 0 评论 -
哈希变形---位图
哈希变形---位图(bitmap)1>所谓的位图就是用bit位来存放数据的某种状态,适用于大规模的数据.2>位图实现BitMap.htypedef struct BitMap{ int * Bit_bset;//位的集合 int _capacity; int _size;//有效bit位的个数}BitMap;void BitMapInit(BitMap * bmp,int ...原创 2018-05-23 10:45:55 · 214 阅读 · 0 评论 -
搜索结构之二叉搜索树
搜索结构之二叉搜索树:二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树二叉搜索树的实现递归和非递归:BSTree.h#pragma once//二叉搜索树---左子树比根节点小,右子树比根节点大...原创 2018-05-16 00:09:27 · 212 阅读 · 0 评论 -
堆的基本操作和应用
堆的基本操作Heap.h#pragma once//指针可以赋值,类型不可以赋值typedef int(*Compare)(DataType , DataType );//compare是一个类型typedef int DataType;typedef struct Heap{ DataType* _array; int _capacity; int _size; Compare...原创 2018-05-15 16:21:42 · 183 阅读 · 0 评论 -
搜索结构之哈希-----开散列
搜索结构之哈希-----开散列开散列法又叫链地址法(开链法)。开散列法:首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。设元素的关键码为37, 25, 14, 36, 49, 68, 57, 11, 散列表为HT[12],表的大小为12,散列函数为Hash(x) = x % 11...原创 2018-05-17 15:45:11 · 220 阅读 · 0 评论 -
搜索结构之哈希-----闭散列
搜索结构之哈希-----闭散列解决哈希冲突两种常见的方法是:闭散列和开散列闭散列闭散列:也叫开放地址法,当发生哈希冲突时,如果哈希表未被装满,说明在哈希表中必然还有空位置,那么可以把key存放到表中“下一个” 空位中去那如何寻找下一个空余位置?线性探测设关键码集合为{37, 25, 14, 36, 49, 68, 57, 11},散列表为HT[12],表的大小m = 12,假设哈希函数为:Hash...原创 2018-05-17 10:42:48 · 309 阅读 · 0 评论 -
搜索结构之哈希----初识哈希
搜索结构之哈希1>顺序搜索以及二叉树搜索树中,元素存储位置和元素各关键码之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。搜索的效率取决于搜索过程中元素的比较次数。2>理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数...原创 2018-05-17 10:04:45 · 305 阅读 · 0 评论 -
队列--栈--二叉树的基本操作和面试题
队列--栈--二叉树的基本操作和面试题Queue//#ifndef __TREE_H__//#define __TREE_H__#pragma onceextern struct BinTreeNode;typedef struct BinTreeNode* QueueDataType;typedef struct QueueNode{ QueueDataType _data; s...原创 2018-04-30 15:42:09 · 553 阅读 · 0 评论 -
链表的基本操作和面试题
链表的基本操作和面试题(不带头结点的单链表)SList.h#define _CRT_SECURE_NO_WARNINGS 1typedef int DataType;typedef struct Node{ struct Node* _pNext; DataType _data;}Node, *PNode;// 链表初始化void SListInit(PNode* pHead);...原创 2018-04-02 19:16:58 · 259 阅读 · 0 评论 -
十大经典排序算法
十大经典排序算法(附有动图演示哦) A>交换排序---冒泡排序 a>冒泡排序(Bubble Sort) 算法描述:比较两个相邻的元素,如果升序的话,前面的比后面的大,就交换,这样一轮下来,就会找到这组数据中最大的元素,然后抛开这个元素继续重复上述步骤.知道排完为止. b>冒泡排序(Bubble Sort)动图演示 b>冒泡排序(Bubble Sort...原创 2018-05-29 12:17:07 · 35032 阅读 · 13 评论