Data Structure
文章平均质量分 70
烟蓑雨笠
这个作者很懒,什么都没留下…
展开
-
堆排序算法
堆排序算法/* 首先说一下堆的性质: 1,它是一个完全二叉树 2,每个节点的值小于等于左右孩子节点的 值称为小根堆,反之为大根堆 3,对于节点i,左孩子为2i,右孩子为2i+1 (如果有的话) 堆排序的思想: 将待排序的序列构造成一个大根堆。此时,整个 序列的最大值就是堆顶的根节点。将它与堆数组的 末尾元素交换,此时末尾元素就是最大值,然后 将剩余的n-1个序列重新构造成原创 2014-02-01 21:38:40 · 864 阅读 · 0 评论 -
队列的相关操作
队列的相关操作原创 2014-08-16 11:25:48 · 836 阅读 · 0 评论 -
链表的相关操作
链表的相关操作原创 2014-08-12 21:44:04 · 662 阅读 · 0 评论 -
顺序表的相关操作
顺序表的相关操作原创 2014-08-08 23:50:52 · 727 阅读 · 0 评论 -
归并排序递归算法
归并/* 归并排序的思想: 假设初始序列含有n个记录,则可以看成是n个 有序的子序列,每个子序列的长度为1,然后两两 归并,得到n/2个长度为1或者2的有序子序列 在两两归并,如此重复,直到一个长度为n的有序 序列为止 */#include#define MAX 1000typedef struct seeqlist{ int Array[MAX]; int lengt原创 2014-02-02 16:02:13 · 1456 阅读 · 0 评论 -
Bucket Sort算法实现
Bucket Sort算法实现/*桶子法排序的主要思想:(限正整数)从个位数起向左一位一位的排过去,最终把所有的数都排列完成,排的是位数,而不是整个数。时间复杂度:O(n)*/#include#include#define LENGTH 4//mask size#define MAX 16#define LOOP sizeof(int)*8/LENGTH//整数的位数u原创 2014-02-22 15:20:24 · 1344 阅读 · 0 评论 -
平衡二叉树的实现算法
平衡二叉树的实现算法/*首先平衡二叉树是一个二叉排序树;其基本思想是:在构建二叉排序树的过程中,当每插入一个节点时,先检查是否因为插入而破坏了树的平衡性,若是,找出最小不平衡树,进行适应的旋转,使之成为新的平衡二叉树。*/#include#include#define LH 1#define EH 0#define RH -1using namespace std;原创 2014-02-08 13:39:33 · 2337 阅读 · 0 评论 -
二叉查找树相关操作实现
二叉查找树相关操作实现#include#includetypedef struct BTNode{ int data; struct BTNode *lchild,*rchild;}BTNode;typedef struct BTree{ BTNode *root;}BTree;int Search(BTNode* T,int key,BTNode *F,BTNod原创 2014-02-04 19:24:51 · 1066 阅读 · 0 评论 -
快速排序算法实现
快速排序算法实现/* 快速排序的思想: 通过一趟排序将记录分割成独立的两部分, 其中的一部分记录的关键字比另一部分记录 的关键字小,然后分别对这两部分进行排序 */#include#define MAX 1000typedef struct seqlist{ int Array[MAX]; int length;}SeqList;void Swap(SeqList原创 2014-02-02 16:23:26 · 1102 阅读 · 0 评论 -
统计文件中各单词出现的频率(二叉排序树实现)
统计文件中各单词出现的频率(二叉排序树实现#include#include#include#include#define MAX 50typedef struct BTNode{ char *word; unsigned long count; struct BTNode *lchild; struct BTNode *rchild;}BTNode;void GetW原创 2014-01-31 09:44:04 · 4489 阅读 · 1 评论 -
斐波那契查找
斐波那契查找/*斐波那契查找的主要思想是:利用斐波那契数列进行下表分割。F(k)=F(k-1)+F(k-2)那么:F(k)-1=F[k-1]-1+F[k-2]也即有:F[k]-1=F[k-1]-1+1(mid,中间数)+F[k-2]-1;*/#include#define MAX 1000int F[]={0,1,1,2,3,5,8,13,21,34};//全局数组原创 2014-02-03 22:43:28 · 1035 阅读 · 0 评论 -
统计文件中各单词出现的频率(Hash表实现)
统计文件中各单词出现的频率(Hash表实现)#include#include#include#include#define MAX 131typedef struct HashTable{ char word[50]; int count; struct HashTable *next;}HashTable;HashTable hash[MAX];int Has原创 2014-01-31 10:24:35 · 6110 阅读 · 1 评论 -
Huffman编码
Huffman编码main.h#ifndef main_h#define main_htypedef struct HTNode{ int weight; int lchild,rchild,parent;}HTNode;typedef struct HCNode{ char ch; char bits[27]; int len;}HCNode;#endif原创 2014-01-31 11:07:10 · 1633 阅读 · 0 评论 -
二叉树的相关操作
二叉树的相关操作BintreeNode.h#ifndef BINTREENODE_H#define BINTREENODE_Htypedef char Datatype;typedef struct BinTreeNode{ Datatype data; struct BinTreeNode *lchild; struct BinTreeNode *rchild;}BinT原创 2014-01-31 13:48:15 · 1227 阅读 · 0 评论 -
图的相关操作
图的相关操作vertex.h#ifndef vertex_h#define vertex_h#define OK 1#define ERR 0#define MAX 20#define INF 0xFFFFtypedef int Status;typedef int VexType;typedef int EdgeType;typedef struct EdgeNod原创 2014-01-31 14:15:17 · 1395 阅读 · 2 评论 -
希尔排序算法
ShellSort排序算法/* Shell排序的主要思想是:将记录分为若干子序列, 然后在各个子序列中进行插入排序,经过若干次 操作便可以得到有序序列 时间复杂度nlogn*/#include#define MAX 1000typedef struct SeqList{ int Array[MAX]; int length;}SeqList;void Shell原创 2014-02-01 17:55:40 · 1089 阅读 · 0 评论 -
归并排序非递归算法
归并排序非递归算法#include#include#define MAX 1000typedef struct seeqlist{ int Array[MAX]; int length;}SeqList;void Merge(int S[],int T[],int i,int m,int n){ int j,k; for(j=m+1,k=i;i<=m&&j<=n;k+原创 2014-02-02 16:05:05 · 2807 阅读 · 0 评论 -
栈的相关操作
栈的相关操作原创 2014-08-16 10:47:54 · 759 阅读 · 0 评论