随笔分类 -  数据结构与算法

摘要:二叉堆简介平时所说的堆,若没加任何修饰,一般就是指二叉堆。同二叉树一样,堆也有两个性质,即结构性和堆序性。正如AVL树一样,对堆的以此操作可能破坏者两个性质中的一个,因此,堆的操作必须要到堆的所有性质都被满足时才能终止。结构性质堆是一棵完全填满的二叉树,因为完全二叉树很有规律,所以它可以用一个数组表... 阅读全文
posted @ 2014-06-27 15:21 Jessica程序猿 阅读(1268) 评论(0) 推荐(0)
摘要:实现优先队列结构主要是通过堆完成,主要有:二叉堆、d堆、左式堆、斜堆、二项堆、斐波那契堆、pairing 堆等。1. 二叉堆1.1. 定义完全二叉树,根最小。存储时使用层序。1.2. 操作(1). insert(上滤)插入末尾 26,不断向上比较,大于26则交换位置,小于则停止。(2). delet... 阅读全文
posted @ 2014-06-26 10:10 Jessica程序猿 阅读(4442) 评论(0) 推荐(0)
摘要:#include#include"fatal.h"typedef char* ElementType;typedef unsigned int Index;typedef Index Position;struct HashTbl;typedef struct HashTbl *HashTable;... 阅读全文
posted @ 2014-06-25 19:13 Jessica程序猿 阅读(477) 评论(0) 推荐(0)
摘要:#include#includetypedef char* ElementType;typedef unsigned int Index;#define MinTableSize 15struct ListNode;typedef struct ListNode *Position;struct H... 阅读全文
posted @ 2014-06-25 18:08 Jessica程序猿 阅读(469) 评论(0) 推荐(0)
摘要:1、函数指针(指向函数的指针)在c语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址(入口地址),所以函数名跟数组名很类似,都是指针常量。函数指针就是指向这个入口地址的指针变量,注意函数指针是一个变量。#includevoid f(int);int main(){ ... 阅读全文
posted @ 2014-06-24 22:02 Jessica程序猿 阅读(448) 评论(0) 推荐(0)
摘要:#include#include "fatal.h"struct TreeNode;typedef struct TreeNode *Position;typedef struct TreeNode *SearchTree;typedef int ElementType;SearchTree Mak... 阅读全文
posted @ 2014-06-24 20:02 Jessica程序猿 阅读(1428) 评论(0) 推荐(0)
摘要:#include#include "fatal.h"struct AvlNode;typedef struct AvlNode *Position;typedef struct AvlNode *AvlTree;typedef int ElementType ;AvlTree MakeEmpty(A... 阅读全文
posted @ 2014-06-24 19:58 Jessica程序猿 阅读(591) 评论(0) 推荐(0)
摘要:AVLTree即(Adelson-Velskii-Landis Tree),是加了额外条件的二叉搜索树。其平衡条件的建立是为了确保整棵树的深度为O(nLogn)。平衡条件是任何节点的左右子树的高度相差不超过1.在下面的代码中,编程实现了AVL树的建立、查找、插入、删除、遍历等操作。采用C++类封装。... 阅读全文
posted @ 2014-06-24 19:55 Jessica程序猿 阅读(767) 评论(0) 推荐(0)
摘要:排序二叉树对于我们寻找无序序列中的元素的效率有了大大的提高。查找的最差情况是树的高度。这里就有问题了,将无序数列转化为二叉排序树的时候,树的结构是非常依赖无序序列的顺序,这样会出现极端的情况。【如图1】: 这样的一颗二叉排序树就是一颗比较极端的情况。我们在查找时候,效率依赖树的高度,所以不希望这样... 阅读全文
posted @ 2014-06-24 16:16 Jessica程序猿 阅读(594) 评论(0) 推荐(0)
摘要:先看个简单的:char *p,这定义了一个指针,指针指向的数据类型是字符型,char *(p)定义了一个指针P;char *p[4],为指针数组,由于[]的优先级高于*,所以p先和[]结合,p[]是一个数组,暂时把p[]看成是q,也就是char *(q),定义了一个指针q,只不过q是一个数组罢了,故... 阅读全文
posted @ 2014-06-24 10:51 Jessica程序猿 阅读(853) 评论(0) 推荐(1)
摘要:二叉搜索树最大特征是:左边子结点的值#include #include typedef struct NODE{ NODE * pleft; NODE * pright; int ivalue;} node;/* 错误示例,实际上这个函数并没有连接起新建的结点void inser... 阅读全文
posted @ 2014-06-24 10:39 Jessica程序猿 阅读(1732) 评论(0) 推荐(0)
摘要:1、序详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、 查找最大值、查找最小值、查找指定结点的前驱和后继2、二叉查找树简介它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值... 阅读全文
posted @ 2014-06-24 10:37 Jessica程序猿 阅读(696) 评论(0) 推荐(1)
摘要:#include #include #includeusing namespace std;struct Node { double coef; int expn; Node *next;};void CreatPolynomial(Node *&head, int n) ... 阅读全文
posted @ 2014-06-19 14:13 Jessica程序猿 阅读(632) 评论(0) 推荐(0)
摘要:算法如下:#include#includevoid Sieve(int n){ int p,j,i; int A[n+1],L[n+1]; for(p=2;p<=n;p++) A[p]=p; for(p=2;p<=sqrt(n);p++) { ... 阅读全文
posted @ 2014-06-16 14:26 Jessica程序猿 阅读(498) 评论(0) 推荐(0)
摘要:#includeint MinSubsequenceSum(const int A[],int n){ int i,sum,MinSum; sum=MinSum=0; for(i=0;i0) sum=0; } return MinSum;}void... 阅读全文
posted @ 2014-06-16 14:22 Jessica程序猿 阅读(535) 评论(0) 推荐(0)
摘要:#includeint MinSubsequenceSum(const int A[],int n){ int i,sum,MinSum; sum=MinSum=0; for(i=0;i0) sum=0; } return MinSum;}void... 阅读全文
posted @ 2014-06-16 14:21 Jessica程序猿 阅读(295) 评论(0) 推荐(0)
摘要:动态规划的算法:#includeint MaxSubsequenceSum(const int A[],int n){ int i,sum,MaxSum; sum=MaxSum=0; for(i=0;iMaxSum) MaxSum=sum; if... 阅读全文
posted @ 2014-06-16 14:20 Jessica程序猿 阅读(204) 评论(0) 推荐(0)
摘要:#includevoid equal(int a[],int N){ int i; for(i=0;i<N;i++) { if(i<a[i]) { printf("no exist\n"); printf("%... 阅读全文
posted @ 2014-06-16 14:19 Jessica程序猿 阅读(370) 评论(0) 推荐(0)
摘要:#include#includevoid bubbleSort(int arr[],int n){ int i,j; for(i=n-1;i>0;i--) for(j=n-2;j>=n-i-1;j--) { if(arr[j+1]>arr... 阅读全文
posted @ 2014-06-16 14:17 Jessica程序猿 阅读(270) 评论(0) 推荐(0)
摘要:#include #include // 第一题// 找出N个数的第k个最大者// 方法1:排序(冒泡),降序找出第k个值// 方法2:选前k个点进行降序排序,后面的数进行比较,// 如果数比第k个数小则忽略, 复杂度低于方法1#define TYPE int#define TESTBUBLESOR... 阅读全文
posted @ 2014-06-15 20:59 Jessica程序猿 阅读(792) 评论(0) 推荐(0)