数据结构
文章平均质量分 79
紫云的博客
just go
展开
-
最大堆
#include #include #include #define MaxSize 100typedef struct{ int key;}element;element heap[MaxSize];void insert_max_heap(element item,int *n);//////////////最大堆的插入操作el原创 2013-10-19 09:58:49 · 757 阅读 · 0 评论 -
二叉排序树(c++实现)
#include using namespace std;class btree{public: btree *left; btree *right; int data; btree(int i):left(NULL),right(NULL),data(i){} ~btree(); void insert(int a); static void inorder(原创 2015-04-16 22:17:30 · 4792 阅读 · 1 评论 -
检索树
#include #include #include #include #define MAX_LETTERS 27#define MAX_CHAR 30//字符串的长度typedef enum {data,pointer}node_type;typedef struct trie_node *trie_pointer;struct trie_node原创 2014-12-12 17:14:05 · 1013 阅读 · 0 评论 -
增加桶式的动态哈希(二)
哈希数值组#includeint transform(char *key) { int number = 0; while(*key) printf("%ld\n",*key++ ); return 0;} void main(){ char caozuo[10]; while(1){ scanf("%s原创 2014-10-20 18:59:45 · 882 阅读 · 2 评论 -
增加桶式的动态哈希
哈希值的获取字符串的二进制,再二进制转换为一组数字,这组数字就是用来确定key在哪个桶层中的代码中 #define tongsize 8 //桶大小是2的n次方,,,,,这里的n=3(2的3次方等于8),那么会把3个二进制转换为一个数字/*当重新分配还是分配到一个桶层时候,会出现哈希key不够用,就会出现引用了无效内存的bug,所以使用more_cengarr[j]=原创 2014-10-20 10:28:27 · 2445 阅读 · 0 评论 -
AVL平衡树
/*1.插入: 使用了一个s数组来保存根节点到插入节点的路线 情况: (1)空树,直接插入,return (2)关键字相同,覆盖原来的值,return (3)插入后,不失衡 那么就要拿出s数组的值来改变这条路线的平衡因子。 (4)插入后,失衡 调用AVL函数。 AVL旋转有分为4种 ll rr rl lr旋转(在设置平衡因子的时候,rl和lr旋转又有3种子情况)2.查找原创 2014-10-28 12:47:54 · 930 阅读 · 0 评论 -
有bug的AVL平衡树
/*AVL平衡树,调了很久始终有bug先放着。测试数据set 1 11set 2 22set 9 999set 10 101010set 11 11111set 12 12121set 19 1919set 17 1717set 16 1616set 15 15set 5 55set 1 11set 2 22set 4 44set 3 33set 7原创 2014-10-23 13:03:26 · 665 阅读 · 0 评论 -
KMP算法
//KMP算法着实牛叉!//KMP算法的首先在fail函数里计算pat子串的“部分匹配”信息;//然后在match函数里利用pat子串的“部分匹配”信息的减少回溯。//fail(ps:书上的fail函数没看懂,自己写了个,原理如下)// |i为满足i// failure[j]= |// |否则 -1//match //原创 2014-03-05 15:21:47 · 834 阅读 · 0 评论 -
哈希的构造,处理冲突和查找
哈希函数的构造方法: 若对于关键字集合中的任一个关键字,哈希函数映像到地址集合中任何一个地址的概率是相等的,则称此类哈希函数为均匀的哈希函数。换句话说,就是使关键字经过哈希函数得到一个“随机的地址“,以便使一组关键字的哈希地址均匀分布在整个地址区间中,从而减少冲突。1.直接定址法 取关键字或关键字的某个线性函数值为哈希地址。即:H(key)=key或H(key)转载 2014-03-02 15:37:05 · 1647 阅读 · 0 评论 -
哈希表-2
///////////////////////拉链法#include#include#include#include#define MAX_CHAR 20 //人名长度 #define TABLE_SIZE 30 //表长度 #define IS_FULL(ptr) (!(原创 2013-10-19 10:18:29 · 963 阅读 · 0 评论 -
哈希表-1
//////////////////线性开放定址法#include#include#include#include#define MAX_CHAR 20 //人名长度 #define TABLE_SIZE 30 //表长度 typedef struct { char k原创 2013-10-19 10:17:00 · 807 阅读 · 0 评论 -
最小最大堆
#include#include#include#include#define MAX_SIZE 100#define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))typedef struct{ int key; // other field}element;element heap[MAX_SIZE];void min_max_inse原创 2013-10-19 10:02:07 · 752 阅读 · 0 评论 -
2-3树
这几天学习和实现了《数据结构(c语言版)》(李建中等人翻译的那本)里介绍的2-3树!说实在,我若过一段时间来看这里的代码,估计我也看不懂了,不过结合书和书里的笔记,我想我还看得懂。对以下代码有兴趣的学者,应该结合那本书来看吧!!!大概说下:插入:a:待插入点,是2节点的,就往这里插入即可。b: 待插入点,是3节点的,拆分这个节点。(小值留下,中值待定,大值放入原创 2015-05-25 17:42:19 · 935 阅读 · 0 评论