自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 堆排序(由选择排序引出)

2017-04-11 07:42:14 276

原创 希尔排序(增量排序)

2017-04-11 07:38:30 7967

原创 简单排序包括冒泡排序和插入排序

2017-04-11 07:35:05 429

原创 旅游规划-单源最短路问题基于Dijkstra来考虑距离以及等距离时按收费更新来更新路径

2017-03-27 21:52:53 295

原创 拓扑排序VOG的算法(甚至用到"容器"存放入度变为0的结点)和有关VOE的关键路径问题

2017-03-27 21:47:03 597

原创 最小生成树问题用Prim算法或Kruskal算法

2017-03-27 13:32:59 762

原创 哈利波特的考试-有权无向图用到Floyd算法

哈利波特的考试-有权无向图用Floyd算法计算任意两顶点的最短路径,再对每个顶点去扫描它到其他顶点最短路径的最大值,把最大值记下,找所有顶点到其他顶点的最大值其中最小值。#define MaxVertexNum 100 //最大顶点数设为100#define INFINITY 65535 //∞设为双字节无符号整数的最大值65535typedef int Vertex; //用

2017-03-25 22:00:28 2197

原创 无权图单源最短路径算法和有权图单源最短路径算法(用到Dijkstra算法)和多源最短路径算法(用到Floyd算法)

2017-03-25 20:23:40 456

原创 Huffman Codes(哈弗曼编码)之计算最优编码长度和对每位学生的提交检查

MinHeap H=CreateHeap(N);//创建一个空的、容量为N的最小堆H=ReadData(N);//将f[]读入H->Data[]中HuffmanTree T=Huffman(H);//建立Huffman树int CodeLen=WPL(T,0); int WPL(HuffmanTree T,int Depth){ if(!T->Left&&!T->Right) re

2017-03-12 22:06:48 842

原创 Complete Binary Search Tree(完全二叉搜索树)用数组表示和计算左子树的规模

void solve(int ALeft,int ARight,int TRoot){//初始调用为solve(0,N-1,0) n=ARignt-ALeft+1; if(n==0) return; L=GetLeftLength(n);//计算n个结点的树其左子树有多少个结点 T[TRoot]=A[ALeft+L]; LeftTRoot=TRoot*2+1; RightTRoo

2017-03-12 21:59:36 636

原创 Tree Traversals Again(通过先序、中序遍历在不建树情况下推出后序遍历)

void solve(int preL,int inL,int postL,int n){ if(n==0) return; if(n==1) {post[postL]=pre[preL];return;} root=pre[preL]; post[postL+n-1]=root; for(i=0;i<n;i++) if(in[inL+i]==root) break; L=i;

2017-03-10 20:22:45 268

原创 用邻接表来表示图

typedef struct GNode *PtrToGNode;struct GNode{ int Nv;//顶点数 int Ne;//边数 AdjList G;//邻接表。AdjList要自己去定义 };typedef PtrToGNode LGraph;//以邻接表存储的图类型typedef struct VNode{ PtrToAdjVNode FirstEdge;

2017-03-10 20:11:09 597

原创 用邻接矩阵来表示图

typedef struct GNode *PtrToGNode;struct GNode{ int Nv;//顶点数 int Ne;//边数 WeightType G[MaxVertexNum][MaxVertexNum]; DataType Data[MaxVertexNum];//存顶点的数据 .有就写 };typedef PtrToGNode MGraph;//以邻接矩阵

2017-03-10 20:09:46 1407

原创 六度空间-用图进行BFS遍历

2017-03-09 22:30:48 989

原创 拯救007-用图进行DFS遍历

2017-03-09 21:51:28 2698 1

原创 图的遍历和图不连通怎么办

2017-03-07 22:33:33 620

原创 什么是图和用邻接矩阵、邻接表表示一个图

2017-03-07 12:49:11 1816

原创 file transfer(文档传送程序)-并查集的应用

/*file transfer文档传送程序*/ typedef struct{//本数组的类型是结构体。集合的每个元素直接用数组里的下标去代表即可,此时数据域可以不要,直接定义一个整型数组即可表示集合。 ElementType Data;//数组有个结构域Data对应的是集合的元素的具体类型 (任何想要的类型) int Parent;//是个指针记录元素在数组里父结点的位置 }SetTy

2017-03-06 21:23:02 479

原创 堆中的路径

#define MAXN 1001//堆的表示及其操作 #define MINH -10001int H[MAXN],size;typedef struct HeapStruct *MinHeap; //最大堆的创建 struct HeapStruct{ ElementType *Elements;//存储堆元素的数组 int Size;//堆的当前元素个数 int Capacit

2017-03-02 14:03:15 331

原创 集合的表示、并查集的数组存储方式和集合的差并运算

typedef struct{ ElementType Data; int Parent; }SetType;SetType S[]; int Find(SetType S[],ElementType X)//查找某个元素所在的集合(用根结点表示) {//在数组S中查找值为X的元素所属的集合 //MaxSize是全局变量,为数组S的最大长度 int i; for(i=0;i<M

2017-02-28 12:43:13 529

原创 哈弗曼树的构造、什么是哈弗曼编码和怎样构造一颗编码代价最小又无二义的二叉树--用哈弗曼树

typedef struct TreeNode *HuffmanTree;struct TreeNode{ int Weight; HuffmanTree Left,Right;}; typedef struct HeapStruct *MinHeap; //最小堆的创建 struct HeapStruct{ ElementType *Elements;//存储堆元素的数组 in

2017-02-20 16:22:54 564

原创 什么是哈弗曼树

【例】将百分制的考试转换成五分制的成绩 if(score<60) grade=1;//判定树 else if(score<70) grade=2; else if(score<80) grade=3; else if(score<90) grade=4; else grade=5; if(score<80)//修改过的判定树 { if(score<70) if(s

2017-02-20 09:32:25 388 1

原创 最大堆的建立-如何调整所考虑的结点

2017-02-17 21:44:38 939

原创 最大堆的插入和删除

typedef struct HeapStruct *MaxHeap; //最大堆的创建 struct HeapStruct{ ElementType *Elements;//存储堆元素的数组 int Size;//堆的当前元素个数 int Capacity;//堆的最大容量 };MaxHeap Create(int MaxSize){//创建容量为MaxSize的空的最大堆

2017-02-17 21:15:35 1046

原创 堆优先用完全二叉树表示、堆的特性和最大最小堆

2017-02-16 21:48:48 1056

原创 单链表的逆转

typedef struct LNode *Ptr; struct LNode{ElementType Data;List Next;};Ptr head,new,old,tmp;Ptr Reverse(Ptr head,int K)//链表的逆转伪代码 { cnt=1; new=head->Next; old=new->Next; while(cnt<K){ tmp

2017-02-16 01:51:48 391

原创 判别是否是同一课二叉搜索树

typedef struct TreeNode *Tree; //搜索树表示 struct TreeNode{ int v; Tree Left,Right; int flag; }; int main(){ int N,L,i; Tree T; scanf("%d",&N); while(N){ scanf("%d",&L); T=MakeTree(

2017-02-13 23:59:23 255

原创 平衡二叉树的四种调整方式和注意事项

2017-02-13 20:55:54 6480 2

原创 什么是平衡二叉树和平衡二叉树的高度达到O(log2n)最少需要结点数为n

2017-02-13 20:54:16 5560 2

原创 二叉搜索树的插入和删除

typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BST; BinTree Insert(ElementType X,B

2017-02-13 04:08:09 374

原创 什么是二叉搜索树、二叉搜索树的查找(递归或循环)和二叉搜索树的查找最大最小元素

typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BST; Position Find(ElementType X,Bi

2017-02-13 03:58:35 1190

原创 如何判断两颗二叉树同构

#define MaxTree 10#define ElementType char#define Tree int#define Null -1struct TreeNode{ElementType Element; Tree Left;Tree Right; }T1[MaxTree],T2[MaxTree],T[MaxTree];int main(){

2017-02-12 02:03:10 5001 1

原创 二叉树的应用问题

【例】遍历二叉树的应用:输出二叉树中的叶子结点。void PreOrderPrintLeaves(BinTree BT)//例如先序遍历来判断左右子树是否都为空 {if(BT){if(!BT->Left&&!BT->Right)//增加检测结点 printf("%d",BT->Data);PreOrderPrintLeaves(BT->Left);PreOrde

2017-02-10 13:31:22 553

原创 二叉树的层序遍历

typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BT;void LevelOrderTraversal( BinTree BT )//二叉树的层序遍历,用队列方法,

2017-02-10 13:03:32 257

原创 二叉树的中序、先序、后序遍历非递归遍历算法(使用堆栈,用循环实现)

typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ElementType Data;BinTree Left;BinTree Right; }; BinTree BT;void InOrderTraversal(BinTree BT)//中序遍历非递归遍历算法

2017-02-10 13:01:58 677

原创 二叉树的先序、中序、后序遍历

typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BT;//二叉树的遍历 void PreOrderTraversal(BinTree BT)//(1)先序遍历

2017-02-05 04:03:42 236

原创 二叉树的存储结构

typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ElementType Data;BinTree Left;BinTree Right; };BinTree BT;

2017-02-05 04:01:50 170

原创 树的表示、推出二叉树、特殊二叉树和二叉树的几个重要性质

2017-02-04 04:16:12 189

原创 数据管理基本操作-查找

typedef struct LNode *List;struct LNode{ElementType Element[MAXSIZE];int Length; }; 方法1:顺序查找算法int SequentialSearch(List Tb1,ElementType K)//(有"哨兵"){//在Element[1]~Element[n]中查找关键字为K的数据元素 

2017-02-04 04:08:09 190

原创 一元多项式加法与乘法运算链表实现

typedef struct PolyNode *Polynomial;struct PolyNode{ int coef;//系数 int expon;//指数 Polynomial link;/*指向下一个结点的指针*/ }; Polynomial P,Rear,t1,t2,t;//这句一定要写 int main(){ Polynomial P1,P2,PP,PS;

2017-01-29 01:56:36 1472 1

空空如也

空空如也

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

TA关注的人

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