
数据结构
文章平均质量分 69
数据结构和算法
xuruhua
少说多做
展开
-
哈希函数的优化
youhua.h# pragma once# include<stdio.h># include<string.h># include<stdlib.h># include<assert.h>#define MAX_SIZE 10typedef int DataType;typedef enum{ EXIST, EMPTY, DELETE}State...原创 2018-05-15 11:22:59 · 915 阅读 · 0 评论 -
哈希函数的开散列
一、哈希桶:1、通过哈希函数计算桶号 (1)哈希桶的最佳状态,就是每个桶下面挂一个元素(动态的可以增容:表格中的元素和总的个数相等):解决了一个哈希桶下面挂多个元素的情况(2)素数表泄露,则别人知道了增容方式,受到攻击。继续增容,导致插入相同元素的概率增加,一条表格下挂的元素增多,使性能下降。解决方法: 在下面挂一个红黑树,效率达到lgN2、每个桶下面挂一个链表,链表采用头插,效率高(尾...原创 2018-05-27 14:32:48 · 407 阅读 · 0 评论 -
排序算法一------插入排序,使用二分查找法对插入排序进行优化,希尔排序
外部排序:指数据不能一次性加载到内存里去内部排序:指数据能一次性加载到内存里去非比较排序:不用比较就能进行的排序比较排序:进行比较才能进行的排序稳定性:如两个学生按照学号排:a在b的前面,按照成绩排a还是在b的前面,则这种排序算法是稳定的;若是如两个学生按照学号排:a在b的前面,按照成绩排b在a的前面,则是不稳定的(成绩是有序的)排序算法分类: 1、插入排序:插入排序.h# pragma o...原创 2018-05-29 17:00:32 · 984 阅读 · 0 评论 -
不带头节点的单链表
.h# pragma once# include<stdio.h># include<stdlib.h># include<string.h># include<assert.h>typedef int DataType;typedef struct Node{ struct Node* _pNext; DataType _da...原创 2018-05-23 11:51:05 · 2723 阅读 · 0 评论 -
哈希
哈希函数一、简单的哈希函数.h# pragma once# include <stdio.h># include<stdlib.h># include<string.h># include<assert.h>#define MAX_SIZE 10typedef int DataType;typedef enum{ EXIST,EMPTY,DELETE...原创 2018-05-14 20:57:40 · 490 阅读 · 0 评论 -
带头节点的双链表
.h# pragma once# include<stdio.h># include<stdlib.h># include<string.h># include<assert.h>typedef int DataType;typedef struct DListNode{ struct DListNode* pNext; struct DListNo...原创 2018-05-09 15:26:12 · 157 阅读 · 0 评论 -
开启新世界的大门
一、冒泡排序:1、只能对整型数据进行冒泡排序# define _CRT_SECURE_NO_WARNINGS 1# include<stdio.h># include<stdlib.h># include<string.h>void BubbleSort(int arr[], int sz){ int i = 0; int j = 0; for ...原创 2018-05-31 17:51:33 · 1789 阅读 · 0 评论 -
哈希函数之开散列----优化
把发生哈希冲突的元素放在同一个桶下面,成为哈希桶每个链表下挂一个元素空间利用率最高优化:1、只能运用于整型:改变哈希函数中的内容:加函数指针或者将存放的数据类型转换为整型2、增容:因为链表个数大于总容量,导致哈希表的性能下降HashBucket.h# pragma once# include<stdio.h># include<assert.h># include&l...原创 2018-05-27 14:32:26 · 692 阅读 · 0 评论 -
二叉树,非递归实现(前序、中序、后序)
一、结合栈的方式实现,先让右孩子入栈,再让左孩子入栈。栈为空后,结束遍历。头文件.根据具体的函数名自己创建,另外需要使用栈,引用栈的头文件 stack.h# pragma oncee# include<stdio.h># include<stdlib.h># include<string.h># include<assert.h&...原创 2018-11-13 11:28:49 · 1470 阅读 · 0 评论 -
二叉树的应用
一、层序遍历的应用:镜像:还需要引入队列,同上一篇博客。.h# pragma once# include<assert.h># include<malloc.h># include<stdio.h># include<stdlib.h># include<string.h># include"Queue.h"t...原创 2018-11-13 11:29:35 · 230 阅读 · 0 评论 -
封装一个栈,队列
一、栈:特殊的线性表,只能在其一端进行数据插入和删除操作,特性:先进后出 FIFO2、模拟实现一个栈# include<stdio.h># include<stdlib.h># include<assert.h># include<string.h># include<iostream>//引用前面自己实现的顺...原创 2018-12-09 12:21:03 · 322 阅读 · 0 评论