数据结构
文章平均质量分 79
紫云的博客
just go
展开
-
最大堆
#include #include #include #define MaxSize 100 typedef struct { int key; }element; element heap[MaxSize]; void insert_max_heap(element item,int *n);//////////////最大堆的插入操作 el原创 2013-10-19 09:58:49 · 772 阅读 · 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 · 4812 阅读 · 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 · 1039 阅读 · 0 评论 -
增加桶式的动态哈希(二)
哈希数值组 #include int 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 · 893 阅读 · 2 评论 -
增加桶式的动态哈希
哈希值的获取字符串的二进制,再二进制转换为一组数字,这组数字就是用来确定key在哪个桶层中的 代码中 #define tongsize 8 //桶大小是2的n次方,,,,,这里的n=3(2的3次方等于8),那么会把3个二进制转换为一个数字 /* 当重新分配还是分配到一个桶层时候,会出现哈希key不够用,就会出现引用了无效内存的bug,所以使用more_ceng arr[j]=原创 2014-10-20 10:28:27 · 2461 阅读 · 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 · 941 阅读 · 0 评论 -
有bug的AVL平衡树
/* AVL平衡树,调了很久始终有bug 先放着。 测试数据 set 1 11 set 2 22 set 9 999 set 10 101010 set 11 11111 set 12 12121 set 19 1919 set 17 1717 set 16 1616 set 15 15 set 5 55 set 1 11 set 2 22 set 4 44 set 3 33 set 7原创 2014-10-23 13:03:26 · 675 阅读 · 0 评论 -
KMP算法
//KMP算法着实牛叉! //KMP算法的首先在fail函数里计算pat子串的“部分匹配”信息; //然后在match函数里利用pat子串的“部分匹配”信息的减少回溯。 //fail(ps:书上的fail函数没看懂,自己写了个,原理如下) // |i为满足i // failure[j]= | // |否则 -1 //match //原创 2014-03-05 15:21:47 · 849 阅读 · 0 评论 -
哈希的构造,处理冲突和查找
哈希函数的构造方法: 若对于关键字集合中的任一个关键字,哈希函数映像到地址集合中任何一个地址的概率是相等的,则称此类哈希函数为均匀的哈希函数。换句话说,就是使关键字经过哈希函数得到一个“随机的地址“,以便使一组关键字的哈希地址均匀分布在整个地址区间中,从而减少冲突。 1.直接定址法 取关键字或关键字的某个线性函数值为哈希地址。即: H(key)=key或H(key)转载 2014-03-02 15:37:05 · 1668 阅读 · 0 评论 -
哈希表-2
///////////////////////拉链法 #include #include #include #include #define MAX_CHAR 20 //人名长度 #define TABLE_SIZE 30 //表长度 #define IS_FULL(ptr) (!(原创 2013-10-19 10:18:29 · 980 阅读 · 0 评论 -
哈希表-1
//////////////////线性开放定址法 #include #include #include #include #define MAX_CHAR 20 //人名长度 #define TABLE_SIZE 30 //表长度 typedef struct { char k原创 2013-10-19 10:17:00 · 815 阅读 · 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 · 764 阅读 · 0 评论 -
2-3树
这几天学习和实现了《数据结构(c语言版)》(李建中等人翻译的那本)里介绍的2-3树! 说实在,我若过一段时间来看这里的代码,估计我也看不懂了,不过结合书和书里的笔记,我想我还看得懂。 对以下代码有兴趣的学者,应该结合那本书来看吧!!! 大概说下: 插入: a:待插入点,是2节点的,就往这里插入即可。 b: 待插入点,是3节点的,拆分这个节点。(小值留下,中值待定,大值放入原创 2015-05-25 17:42:19 · 948 阅读 · 0 评论