- 博客(91)
- 资源 (9)
- 问答 (6)
- 收藏
- 关注
原创 散列表简介11.1.1
编译处理时候涉及到变量及属性的管理,动态查找管理插入:新变量查找:变量的引用如果利用查找树(搜索树)进行变量管理:两个变量名(字符串)比较效率不高目前已经知道的
2017-05-14 21:20:30 196
转载 多关键字排序-oj考试排名10.1.3
考试排名 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3445 Accepted Submission(s): 1249Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点。它的功能
2017-05-12 07:43:22 863
原创 桶排序升级之基数排序c语言实现10.1.2
上一篇介绍了不稳定的快速排序,这回介绍基数排序基数排序是基于分配策略的排序,不是一种比较排序,不受到 O(n log n) 下限的影响,是一种稳定的排序算法,并且它可以应用于多关键字排序。次位优先基数排序先按照优先级别最低的位对序列进行排序,下一步按照稍高优先级的位对序列进行排序,直到最高位时候整个序列就是有序序列主位优先基数排序先按照优先级最高的位对序列进行排序,
2017-05-06 10:03:27 728
原创 快速排序-c语言实现10.1.1
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快
2017-05-06 07:01:38 4574
原创 归并排序之有序子列的归并9.4.1
已知数组a有两个有序的子列挨在一起,l为左边子列的起始下标,r为右边子列的起始下标,rend为右边子列的终点下标,以下算法将整个a变为有序子列void Merge(ElementType a[],ElementType tmpa[],int l,int r,int rend){int len=rend-l+1;//整个数组长度int lend=r-1;//左边的终点下标int tmp=l
2017-05-03 15:13:51 260
原创 归并排序之递归排序9.4.2
#include#include#include#includetypedef int ElementType;void Merge(ElementType a[],ElementType tmpa[],int l,int r,int rend){//有序子列的归并int len=rend-l+1;int lend=r-1;int tmp=l;while(l<=lend&&r<=
2017-05-03 15:09:25 255
原创 选择排序和堆排序9.3.1
选择排序伪代码堆排序:以上图片均来自网络截图以下代码来自百度知道#include#include#include void Swap( ElementType *a, ElementType *b ) { ElementType t = *a; *a = *b; *b = t; } void Per
2017-05-02 09:31:40 237
原创 插入排序和希尔排序9.2.1
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 void InsertionSort( ElementType A[], int N ) { /* 插入排序 */ int P, i; ElementType Tmp; for (
2017-05-02 08:02:53 246
原创 简单排序冒泡排序和插入排序9.1.1
N个元素的冒泡排序:冒泡排序每一趟比较无序序列相邻的两个元素,如果前一个元素小于后者就交换,一趟下来最大的元素排在最后---这样无须序列元素少一个,有序序列元素多一个,当进行N-1趟这样的操作后整个序列就变为有序序列。#include#include#includetypedef int EleType;void swap(EleType *a,EleType *b){//交换两元素位
2017-05-01 18:53:39 223
转载 拓扑排序,数据结构学习笔记8.1.4
/* 邻接表存储 - 拓扑排序算法 */ bool TopSort( LGraph Graph, Vertex TopOrder[] ) { /* 对Graph进行拓扑排序, TopOrder[]顺序存储排序后的顶点下标 */ int Indegree[MaxVertexNum], cnt; Vertex V; PtrT
2017-05-01 13:40:58 378
原创 最小生成树kruskal算法适合稀疏图(网络整理)8.1.3
#include#include#include#define MAXSIZE 100typedef int Weight;typedef char Datatype; typedef struct AdjVNode{Weight weight;int adjv;struct AdjVNode *Next;}*PtrToAdjVNode;typedef struct Vnod
2017-04-26 19:53:51 6774
原创 最小生成树prim算法适合稠密图(网络整理)8.12
#include #include /* 图的邻接矩阵表示法 */ #define MaxVertexNum 100 /* 最大顶点数设为100 */ #define INFINITY 65535 /* ∞设为双字节无符号整数的最大值65535*/ typedef int Vertex; /*
2017-04-26 19:45:29 8735
原创 3.16(c程序实现)特殊的平衡二叉搜索树之完全二叉搜索树
#include #include int b[1005]; int j=0; int compare(const void * a, const void * b); void mid_tre(int root,int N,int a[]); int main(){
2017-04-26 11:02:53 214
原创 多源有权图的最短路径 floyd算法(动态规划能解决负权边)7.1.3
核心代码只有5行呀for(int k=0;kNv;k++) for(int i=0;iNv;i++) for(int j=0;jNv;j++) if(dist[i][j]>dist[i][k]+dist[k][j])//只要通过中转点能使两点距离变小就更新 { dist[i][j]=dist[i][k]+dist[k][j
2017-04-25 09:13:54 1891
原创 单源有权图的最短路径 Dijkstra算法(证明不能解决负权边)7.1.2
单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。 Dijkstra算法假设存在G=,源顶点为0,U={0+已确定的最短路径顶点},dist[i]记录顶点0到顶点i的最短距离(包括确定的和估算的),path[i]记录从0到i路径上的i前面的一个顶点。U中收录的是已确定的最短路径顶点,比如2被U收录的话就代表dist[2]的值就是顶点0到顶点2的最短路径,后面操作不需要
2017-04-22 07:49:37 3144
翻译 图的遍历之DSF深度优先算法6.2.1(网络整理)
图的遍历之深度优先算法伪代码描述(和树的前序遍历相似,实际上树可以看成特殊的图:N个顶点有N-1条边,不曾在回路!即树是图连通中最少边的情况)图片来自网络如上图:深度优先遍历:先选取一个顶点访问它,然后深度优先遍历它的每个未访问的邻接点#include#include#include#define MaxVertexNum 100 /* 最大顶点
2017-04-20 08:00:43 4585
原创 3.14(c程序实现)已知二叉树的前序遍历和中序遍历,求后序遍历
伪代码描述见下图(来自网络)那么开始码代码了#include#include#include#includetypedef int Ele;typedef struct N{ Ele *pre; Ele *in; Ele *post; int length;}Node;Node createNode(int n){Node node;node.length=
2017-04-16 07:26:10 940
原创 随记,编译,链接!static
编译都是以.c文件为单元的编译之前需要先预处理,#开头的是预处理命令,比如:include仅仅是将某文本插入此文本文件,#define仅仅是在预处理时编译器进行文本替换!预处理过后就会将文件编译成.o目标文件(中间可能先编译成汇编,再编译成.o文件),调试小技巧,编译中只要你声明了某函数,调用声明的函数就不会报错!每个.c文件编译过后得到各自.c文件,连接器将它们链
2017-04-12 18:39:56 221
转载 C语言实现图的领接表表示6.1.2
/* 图的邻接表表示法 */ #define MaxVertexNum 100 /* 最大顶点数设为100 */ typedef int Vertex; /* 用顶点下标表示顶点,为整型 */ typedef int WeightType; /* 边的权值设为整型 */ typedef char DataType;
2017-04-12 11:59:44 609
转载 C语言实现图的领接矩阵表示6.1.1
/* 图的邻接矩阵表示法 */ #define MaxVertexNum 100 /* 最大顶点数设为100 */ #define INFINITY 65535 /* ∞设为双字节无符号整数的最大值65535*/ typedef int Vertex; /* 用顶点下标表示顶点,为整型 */ typedef int W
2017-04-12 11:57:41 1085 1
原创 最小堆的应用之哈弗曼树5.2
哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度的乘积之和。哈弗曼编码是它的重要应用,哈弗曼编码是一种无前缀编码。假设计算机世界里文字只由由A、B、C、D、E四个字符组成,它们出现的频率分别为5,4,3,2,1,那么我们第一步先取两个最小权值作为左右子树构造一个新树,即取1,2构成新树,其结点为1+2=3,
2017-04-06 12:46:07 466
原创 集合的表示之并查集5.3
以上图片在自网络1、可用树结构表示集合,树的每个结点代表集合中一个元素。2、用树根代表这个集合。因此我们查某个元素属于哪个集合,实际就是查寻树中结点的根结点。因为我们只需要知道树中某个结点的父亲结点,因此我们可以用双亲表示法来表示树,我们可以选择链表或数组作为存储结构!//链表对应的一个元素结点类型typedef int Ele;struct Tnode{Ele
2017-04-05 19:13:28 329
转载 堆C语言实现5.1
typedef struct HNode *Heap; /* 堆的类型定义 */ struct HNode { ElementType *Data; /* 存储元素的数组 */ int Size; /* 堆中当前元素个数 */ int Capacity; /* 堆的最大容量 */ }; typede
2017-04-04 15:16:02 799
原创 c语言可变数组的实现
/*可变数组*//**创建返回指针类型**/#include#includetypedef int Ele;const Ele ERROR=0;typedef struct Array{Ele *data;int size;}*Arr;Arr createarr(int size){Arr arr=(Arr)malloc(sizeof(struct Array));arr-
2017-04-04 07:54:04 3474
原创 判别两序列所对应两颗二叉搜索树是否相同之建立两颗树4.13
/**任何一个结点的值域都比它的右子树小,比它的左子树大,我们叫它二叉搜索树**/#include#include#include#includetypedef int Ele;typedef struct Node{Ele e;struct Node *left;struct Node *right;}*Tree,*TNode;//Tree insert(Tree t,E
2017-04-03 06:55:45 320
原创 二叉搜索树的查找与删除4.12
二叉搜索树创建过后就开始查找和删除了/**任何一个结点的值域都比它的右子树小,比它的左子树大,我们叫它二叉搜索树**/#include#include#includetypedef int Ele;typedef struct Node{Ele e;struct Node *left;struct Node *right;}*Tree,*TNode;//Tree in
2017-04-02 08:46:42 165
原创 二叉搜索树的创建,插入式创建4.1
/**任何一个结点的值域都比它的右子树小,比它的左子树大,我们叫它二叉搜索树**/#include#include#includetypedef int Ele;typedef struct Node{Ele e;struct Node *left;struct Node *right;}*Tree,*TNode;//Tree insert(Tree t,Ele e){if
2017-04-01 19:11:44 196
原创 判断二叉树是否同构3.13
#include#include#include/***/typedef char Ele;typedef struct Node{Ele e;struct Node *left;struct Node *right;}*Tree,*Tnode;Tree createTree(){char tmp;Tree t;scanf("%c",&tmp);if(tmp='#')
2017-04-01 16:37:18 933
原创 二叉树的表示链式表示和顺序存储3.0
(一)二叉树的链式表示1普通链表,其中一个结点表示如下typedef int Elem;struct Node{Elem data;struct Node *left;struct Node * right;}2静态链表typedef Ele int;typedef postion int;typedef strcut{Ele data;postion le
2017-03-31 08:40:13 704
原创 c语言描述运行正常,二叉树的层序遍历3.1.2
#include#include#define MAX 100#ifndef true#define true 1#define false 0typedef int bool;#endif/**二叉树的链式表示法**///结点typedef char Ele;typedef struct Node{Ele data;struct Node *left;struc
2017-03-30 21:35:17 306
原创 二叉树的非递归遍历之后序遍历
在上一篇中二叉树的非递归遍历我已经完成了中序和前序遍历,模拟的是他们吧遍历的方向,如果把遍历路线逆过来,我们输出第一次遇到的结点,结果可以看到为前序遍历的逆向顺序!因此我们把输出的地方再压如另一个堆栈就可以解决了#include #include typedef char Ele; typedef struct Node { Ele data; struct Nod
2017-03-30 20:15:16 184
原创 二叉树的非递归遍历3.1.1
/* 树的递归创建 */ #include #include typedef char Ele; typedef struct Node { Ele data; struct Node *left; struct Node *right; }*T,*lnode; /*按照先序遍历创建树ABDG##H###CE#I##F## */
2017-03-30 17:28:04 232
原创 二叉树的递归创建和递归遍历3.1
/*树的递归创建*/#include#includetypedef char Ele;typedef struct Node{Ele data;struct Node *left;struct Node *right; }*T,*lnode;/*按照先序遍历创建树ABDG##H###CE#I##F## */T createTree(){ T t; Ele tmp
2017-03-29 20:09:17 267
原创 一元多项式加法和乘法-数据结构学习笔记2.3-2.4
/* 1 一元多项式的用什么表示-----单链表,此处不带头结点的表示 2创建一元多项式,输入3 5 6 1 5 2 3表示三项多项式,系数分别为5,1,2指数分别为6,5,3---程序要求自动按指数从大到小排序 3完成一元多项式的加法 4完成一元多项式的乘法 5完成一元多项式的输出*/#include#include/*结点,多项式中的一项*/typedef struct N
2017-03-29 11:26:00 677
原创 队列的顺序存储和链式表示方法-数据结构学习笔记2.3
1,顺序存储时我们常用循环队列,为了区分队列满和空,我们最多只用MAX-1个空间队列空:q->rear=q->front队列满:q->front=(q->rear+1)%MAX typedef int Position; struct QNode { ElementType *Data; /* 存储元素的数组 */ Position
2017-03-28 09:35:59 426
原创 堆栈的两种表示方法-数据结构学习笔记2.2
顺序存储表示#include#include typedef int Elem;#define MAX 200const Elem ERROR=-1;typedef struct{Elem data[MAX];int top;}*S,SS;S createStack(){S s=(S)malloc(sizeof(SS));s->top=-1;return s;}
2017-03-27 21:40:15 1111
window错误码查询工具.rar
2020-06-20
更改win10默认编码为utf8,无%SystemRoot%_system32_cmd.exe注册表项也可以以.reg
2019-06-29
C++(qt)游戏实战项目:坦克大战(源代码)
2017-07-19
严蔚敏海龟作图初步程序适合参考
2015-12-28
多线程如何让用户调用马上抢到互斥锁?
2020-06-30
关于用timeSetEvent c++多线程时的空悬指针来探讨解决办法
2020-03-27
怎么根据一张表自动生成另一张表
2016-01-13
我写的这个截全屏函数有什么问题
2015-10-15
截屏,不知道哪里出了问题,打开图片不显示
2015-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人