自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 不相交集ADT

1.等价关系 等价关系就是具有以下三个性质的关系: a.自反性 b.对称性 c.传递性 2.动态等价性问题 (1)输入N个集合的类,每个集合含有一个元素,初始的描述是所有的关系均为false,每个集合的元素都互异,即这些集合不相交. (2)两种运算 a.Find,返回包含给定元素的集合,即等价类的名字 b.Union添加关系,首先看a和b是不是已经有关系,即对a和b执行Find并检

2016-01-03 21:51:25 356

原创 不相交集--C语言实现

disjset.h#ifndef _DisjSet_H_#define _DisjSet_H_#define NumSets 100typedef int DisjSet[NumSets + 1];typedef int SetType;typedef int ElementType;void Initialize(DisjSet S);void SetUnion(DisjSet S, S

2016-01-03 21:47:24 441

原创 常见的几种排序算法

sort.c#include<stdio.h>#include<stdlib.h>#include<string.h>#define LeftChild(i) (2*(i)+1)#define Cutoff (3)#define MaxM 100#define BucketCap 10#define BitsOfNum 10typedef int ElementType;void I

2016-01-03 01:08:33 309

原创 排序

1.预备知识 基于比较的排序 2.插入排序 O(N^2) 3.简单排序算法的下界 (1)数组的一个逆序是指数组中具有性质i 小于j,但A[i]>A[j]的序偶(A[i],A[j]). 逆序数是需要由插入排序(非直接)执行的交换次数.交换两个不按原序排列的相邻元素消除一个逆序。由此可得可以通过计算排列中的平均逆序数而得出插入排序平均运行时间的精确的界. (2) 定理1:N个互异数的数组的平

2016-01-01 21:29:25 390

原创 二项队列--C语言实现

binqueue.h#ifndef _BINQUEUE_H_#define _BINQUEUE_H_#define MaxTrees 100#define Capacity 1000struct BinNode;struct Collection;typedef int ElementType;typedef struct BinNode *Position;typedef Posit

2016-01-01 17:24:52 620

原创 斜堆--C语言实现

skewheap.h#ifndef _SKEWHEAP_H_#define _SKEWHEAP_H_#define Insert(X,H) (H=Insert((X),H))struct TreeNode;typedef struct TreeNode *PriorityQueue;typedef int ElementType;PriorityQueue Initialize();Ele

2016-01-01 12:41:29 371

原创 左式堆--C语言实现

leftheap.h#ifndef _LEFTHEAP_H_#define _LEFTHEAP_H_#define Insert(X,H) (H=Insert1((X),H))#define DeleteMin(H)(H=DeleteMin1(H))struct TreeNode;typedef struct TreeNode *PriorityQueue;typedef int Elem

2016-01-01 11:03:22 727 1

原创 二叉堆--C语言实现

binheap.h#ifndef _BINHEAP_H_#define _BINHEAP_H_#define MinPQSize 100struct HeapStruct;typedef int ElementType;typedef struct HeapStruct *PriorityQueue;PriorityQueue Initialize(int MaxElements);vo

2015-12-31 14:59:45 532

原创 优先队列<堆>

1.模型 两个基本操作: Insert等价Enqueue DeleteMin删除最小者–Dequeue 2.简单的实现 (1)简单链表–遍历删除Min或者排序删除Min (2)使用二叉查找树。 反复除去Min会使得树不平衡,并且BST还支持许多不需要的操作。 3.二叉堆 优先队列的实现普遍使用二叉堆,堆有两个性质–结构性和堆序性,对堆的一次操作可能破坏两个性质中的一个,因此堆的操作

2015-12-31 01:25:08 687

原创 开放定址散列表--C语言实现

hashtable.h#ifndef _HASHTABLE_H_#define _HASHTABLE_H_#define MinTableSize 10000#define Prime 10007typedef unsigned int Index;typedef Index Position;struct HashTbl;typedef struct HashTbl* HashTabl

2015-12-30 21:38:55 341

原创 分离链接散列表--C语言实现

hashtable.h#ifndef _HASHTABLE_H_#define _HASHTABLE_H_#define MinTableSize 100#define Prime 10007struct ListNode;typedef struct ListNode* Position;struct HashTbl;typedef struct HashTbl* HashTable;

2015-12-30 18:07:39 443

原创 散列

1.基本思想 结构:包含有关键字的具有固定大小的数组。每个关键字被映射到从0到TableSize-1这个范围中的某个数,并且被放到适当的单元中,这个映射就叫做散列函数。理想状态下它应该运算简单并且保证任何两个不同的关键字映射到不同的单元,不过这是不可能的,因为单元数目有限而关键字实际上是用不完的,因此我们寻找一个散列函数,该函数要在单元之间均匀的分配关键字,并决定当两个关键字散列到

2015-12-30 15:27:08 540

原创 List--C++模板类

#ifndef _PACKAGE_H_#define _PACKAGE_H_//数组实现namespace list_in_array{ template<typename T> class List { private: enum { bad = -1 }; enum { MAX = 100 }; T elem

2015-12-30 12:29:17 249

原创 Queue--C++模板类

#ifndef _PACKAGE_H_#define _PACKAGE_H_//链表实现namespace queue_in_list{ template<typename T> class Queue { private: struct Node { T data; struct

2015-12-30 12:25:48 353

原创 Stack--C++模板类

#ifndef _STACK_H_#define _STACK_H_//数组实现namespace stack_in_array{ template <typename T> class Stack { private: enum { MAX = 100 }; T elements[MAX]; int top;

2015-12-30 12:23:56 264

原创 Stack链表C实现

stack.h#ifndef STACK_H_#define STACK_H_struct Node;typedef struct Node * PtrToNode;typedef PtrToNode Stack;typedef int ElementType;int IsEmpty(Stack S);Stack CreateStack();void MakeEmpty(Stack S)

2015-12-30 12:13:12 343

原创 静态链表--C语言实现

list.h#ifndef _LIST_H_#define _LIST_H_#define SpaceSize 100typedef int PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;typedef int ElementType;int IsEmpty(const List L);int IsLast(con

2015-12-30 11:38:41 330

原创 动态链表--C语言实现

list.h#ifndef _LIST_H_#define _LIST_H_struct Node;typedef int ElementType;typedef struct Node *PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;List MakeEmpty(List L);int IsEmpty(List

2015-12-30 11:03:25 357

原创 BST树--C语言实现

bsttree.h#ifndef _BSTTREE_H_#define _BSTTREE_H_struct BstNode;typedef int ElementType;typedef struct BstNode *Position;typedef struct BstNode *BstTree;BstTree MakeEmpty(BstTree T);Position Find(E

2015-12-30 01:40:27 625

原创 AVL树--C语言实现

avltree.h#ifndef _AVLTREE_H_#define _AVLTREE_H_struct AvlNode;typedef struct AvlNode* Position;typedef struct AvlNode* AvlTree;typedef int ElementType;AvlTree Insert(ElementType x, AvlTree T);Avl

2015-12-30 00:36:43 342

原创

1. 预备知识 (1)实现 孩子兄弟表示法 (2)遍历及其应用 a.先序遍历 b.后序遍历 2.二叉树 (1)表达式树 a. 先序遍历–前缀表达式–不常用 b. 中序遍历–中缀表达式–直观 c. 后序遍历–后缀表达式–求值无须考虑优先规则 (

2015-12-29 00:03:35 441

原创 表、栈和队列

1.抽象数据类型 (1). 抽象概念的存储数据结构及其可能的操作集合。 (2) 好处: a. 编写一次,重复调用,代码重用率高 b. 修改实现代码不影响接口使用代码,利于修改和调试 (3)目标: a. 函数模块化 b.实现和接口分离 2.表 (1)数组实现 空间开销大,且不利于插入和删除,故一般不用来

2015-12-28 19:23:08 269

原创 算法分析

常见符号 a. Θ—增长率相同 b. Ο—增长率小于等于—上界 c. Ω—增长率大于等于—下界 d. Ο—增长率严格小于 2.最大子序列问题 递归方法—分治策略—N log⁡N 联机算法—常量空间线性时间运行的在线算法–N#include<cstdio>#include<algorithm>using namespace std;int *arr;int n;void Rea

2015-12-28 00:28:03 308

原创 引论

级数公式 (1)几何级数公式: 如果 ,则 且当N趋向无穷,结果趋向于. (2) 算数级数公式: 一般的, 特别的(调和和),k=-1时, 常见证明方法 (1)归纳证明法 a.基准情形 b.归纳假设 c.进行证明 (2) 反证法 假设结论不成立,推出矛盾

2015-12-27 21:29:42 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除