自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 音画问题常见总结

平台view默认背景色为黑色,大概率说明数据未上屏。

2024-04-03 15:30:04 173

原创 c工作笔记操作

为了定义共用体,您必须使用union语句,方式与定义结构类似。union 语句定义了一个新的数据类型,带有多个成员。union 语句的格式如下:union tag是可选的,每个 member definition 是标准的变量定义,比如 int i;或者 float f;或者其他有效的变量定义。在共用体定义的末尾,最后一个分号之前,您可以指定一个或多个共用体变量,这是可选的。下面定义一个名为 Data 的共用体类型,有三个成员 i、f 和 str:float f;} data;现在,Data。

2024-04-02 20:27:47 870 1

翻译 排序总结

冒泡排序 for(int j = 0; j < n - 1; j++) // 每次最大元素就像气泡一样"浮"到数组的最后 { for (int i = 0; i < n - 1 - j; i++) // 依次比较相邻的两个元素,使较大的那个向后移 { if (A[i] > A[i + 1])

2017-05-20 10:20:12 432

转载 Deletion from BST (Binary Search Tree)

#include <bits/stdc++.h>using namespace std;// Data structure to store a Binary Search Tree nodestruct Node { int data; Node *left, *right;};// Function to create a new binary tree node havi

2017-05-17 12:13:12 425

原创 如果

如果我是一首歌我会化作音符环绕在你的四周从你的发丝绕到你的耳边再晃晃悠悠的蹭来蹭去看你气呼呼得样子而你碰不到我的我的自得其乐如果我是一阵风我想呼啦啦的赶着你跑把你的头发全都往后吹让你的脸正对着我让你的发丝在空中肆意飞扬那么活力的你我想可能会恶作剧将你的头发全吹到你的脸上让你口吞到你发梢然后抱怨埋汰着我如果我是窗前的橡树会默默的注视着你可以一直一直就那样看着

2017-05-05 18:59:11 443

转载 AVL树(平衡二叉查找树)

转载来至:http://blog.csdn.net/collonn/article/details/20128205AVL树的旋转操作 图解 最详细各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。我们称呼左旋为:逆进针旋转。我们称呼右旋为:顺进针旋转。老规矩,直接上图。如果再看不懂AVL树的旋转,我就无能为力了。。。如果图中有错误

2017-05-03 15:16:36 320

转载 B树,B-树,B+树

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关

2017-05-03 13:47:13 260

原创 排序算法之快速排序

快速排序的基本思想 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。快速排序的三个步骤 1) 选择基准:在待排序列中,按照某种方式挑出一个元素,作为 “基准”(pivot); 2) 分割操作:以该基准在序列中的实际位置,把序列分成两个子序列。此时,在基准左边的元素都比该

2017-05-03 00:49:58 393

原创 二叉搜索树之二

二叉查找树的删除情况(1) 结点p无左右子树,则直接删除该结点,修改父节点相应指针(2)结点p有左子树(右子树),则把p的左子树(右子树)接到p的父节点上(3) 左右子树同时存在,则有三种处理方式 1>找到结点p的中序直接前驱结点s,把结点s的数据转移到结点p,然后删除结点s,由于结点s为p的左子树中最右的结点,因而s无右子树,删除结点s可以归结到情况(2)。2> 找到结点p的中序直接后继结

2017-05-02 21:17:19 359

原创 二叉搜索树之一

二叉查找树(BinarySearch Tree,也叫二叉搜索树,或称二叉排序树Binary Sort Tree)或者是一棵空树,或者是具有下列性质的二叉树:(1)、若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值; (2)、若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值; (3)、它的左、右子树也分别为二叉查找树。 二叉搜索树的基本操作:

2017-05-01 19:57:41 366

原创 指针小随笔

在计算机中,内存的分配就是一块块的,内存中可以存储很多东西,不同的数据类型,指针,并且每块内存都有相应的物理地址编号。用户向计算机申请分配内存资源时,计算机将没有占用的内存资源按照某种方式分配给用户。 地址的本义也是内存存储的数据,但是这个数据是可以指向某个数据的标识。将两个数据进行交换:void swap(int x,int y) { int tmp;

2017-05-01 16:19:32 385

原创 开门人关门人

题目描述: 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人。输入: 测试输入的第一行给出记录的总天数N ( N> 0 ),下面列出了N天的记录。 每天的记录在第一行给出记录的条目数M (M > 0 ),下面是M行,每行的格式为 证件号码 签到时间 签离时间 其中时间按“小时:分

2017-04-29 19:19:14 377

原创 图的遍历

DFS 基本思想:首先从图中某个顶点v0出发,访问此顶点,然后依次从v0相邻的顶点出发深度优先遍历,直至图中所有与v0路径相通的顶点都被访问了;若此时尚有顶点未被访问,则从中选一个顶点作为起始点,重复上述过程,直到所有的顶点都被访问。可以看出深度优先遍历是一个递归的过程。BFS 基本思想:首先,从图的某个顶点v0出发,访问了v0之后,依次访问与v0相邻的未被访问的顶点,然后分别从这些顶点出发,

2017-04-28 20:47:37 507

原创 图的基本操作【严蔚敏】

图的基本操作:ADT Graph{ 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。 数据关系R:R={VR} VR={<v,w>|v,w∈V且P(v,w),<v,w>表示从v到w的弧, 谓词P(v,w)定义了弧<v,w>的意义或信息} 基本操作: CreateGraph( &G, V, VR ) 初始条件:V是图的顶

2017-04-27 18:30:24 3094

原创 huffman树【严蔚敏】

huffman树(最优二叉树)的基本操作及其定义假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;(3

2017-04-27 16:26:14 990 1

原创 次优查找树的实现【严蔚敏】

考虑查找成功时的情况:查找性能最佳的判别树是带权路径之和PH的值。最优查找树:用数学公式来表示就是:使得的PH值最小的树为该数组的静态最优查找树。其中i为节点标号,为节点i的带权路径长度,,它等于结点i的查找路径长度c,乘以该结点被查找的概率p;h表示节点i在搜索树中的高度。通俗点来说,就是权值越大的结点,越放到靠近根结点的位置。可能查找概率大,需要的比较次数(折半查找中的次数)多

2017-04-26 22:54:44 5759 1

原创 查找表查找方式【严蔚敏】

顺序查找(线性查找)顺序查找(Sequential Search)又称为线性查找,是一种最简单的查找方法。查找过程如下:从线性表的一端开始顺序扫描线性表,依次将扫描到的结点关键字和给定值进行比较。若当前扫描到的结点关键字与给定值相等,则查找成功;若扫描结束后,仍未能找到关键字等于给定值的结点,则查找失败。int Search_Seq(SSTable ST,KeyType

2017-04-26 21:50:46 961

原创 查找表【严蔚敏】

查找表:同一类型元素或记录构成的集合。对查找表的常用操作:1)查找某个元素是否在表中;2)检查某个元素的各个属性;3)插入一个新数据元素;4)删除某个数据元素。静态查找表:只有前面两种查找操作的查找表;动态查找表:除了静态功能之外在查找过程中可以插入不存在的元素或者删除已存在的数据元素。关键字:数据元素或记录中某个数据项的值。若关键字标识具有唯一性,则称为主关键字。

2017-04-26 19:35:21 640

原创 动态存储管理之一【严蔚敏】

用户请求系统分配内存:(两种策略)1)系统继续从高地址的空闲块中进行分配,不理会已分配的内存区是否已经空闲,直到无法满足分配请求时,系统再去回收用户不再使用的空闲块。2)用户执行完结束,立马分配过的空闲块释放,用户请求分配时,遍历整个内存区,找合适空闲块分配。可利用空间表实现内存分配方法:表中包含所有可分配的空闲块,每一块是链表中一个节点。1)所有用户请求分配存储量大小相同。

2017-04-26 18:52:55 651

原创 广义表操作【严蔚敏】

注:与《数据结构》【严蔚敏】配套纯c代码 //广义表的扩展线性链表存储表示 enum ElemTag{ATOM,LIST}; // ATOM==0:原子,LIST==1:子表 typedef struct GLNode { ElemTag tag; // 公共部分,用于区分原子结点和表结点 union // 原子结点和表结点的联合部分 { AtomType

2017-04-25 12:05:36 1288

原创 稀疏矩阵的创建【严蔚敏】

// c1.h (程序名) #include #include #include // malloc()等 #include // INT_MAX等 #include // EOF(=^Z或F6),NULL #include // atoi() #include // floor(),ceil(),abs() #include //cout,cinusin

2017-04-25 11:27:30 3054

原创 数组的顺序表示和实现【严蔚敏】

代码为数据结构【严蔚敏】书籍配套纯c代码//数组的顺序存储表示 #include // 标准头文件,提供宏va_start,va_arg和va_end, // 用于存取变长参数表 struct Array { ElemType *base; // 数组元素基址,由InitArray分配 int dim; // 数组维数 i

2017-04-25 11:15:38 1157 1

原创 操作系统pv操作

PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:P(S):①将信号量S的值减1,即S=S-1;                      ②如果S>=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。V(S):①将信号量S的值加1,即S=S+1;                      ②如果S>0,则该进程继续执行;否则释

2017-04-24 22:39:07 5774 1

原创 顺序表基本操作【严蔚敏】

注:【属于配套书籍的源代码】链表的基本操作:创建,添加结点,删除结点,输出等 struct SqList { ElemType *elem; // 存储空间基址 int length; // 当前长度 int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位) }; Status InitList(SqList &L) //

2017-04-24 22:12:10 699

原创 链表操作一【合并链表】【严蔚敏】

struct SqList {   ElemType *elem; // 存储空间基址   int length; // 当前长度   int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位) };void MergeList(SqList La,SqList Lb,SqList &Lc) // 算法2.2 { // 已知线性表

2017-04-24 22:03:46 645

原创 栈的基本操作【严蔚敏】

typedef struct SqStack { SElemType *base; /* 在栈构造之前和销毁之后,base的值为NULL */ SElemType *top; /* 栈顶指针 */ int stacksize; /* 当前已分配的存储空间,以元素为单位 */ }SqStack; /* 顺序栈 */Status InitStack(SqStack *

2017-04-22 17:28:26 906

原创 队列的基本操作【严蔚敏】

typedef struct QNode { QElemType data; struct QNode *next; }QNode,*QueuePtr; Status InitQueue(LinkQueue *Q) { /* 构造一个空队列Q */ (*Q).front=(*Q).rear=(QueuePtr)malloc(sizeof(QNode)); if(

2017-04-22 17:22:45 1453 1

原创 二叉树的基本操作(严蔚敏)

二叉树是一种树形结构,它的特点是每个结点至多只有两棵子树(即二叉树中不存在度大于2 的结点),并且,二叉树的子树有左右之分,其次序不能颠倒。二叉树的链表 。 typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; /* 左右孩子指针 */ }BiTNode,*BiTree;

2017-04-22 16:53:33 2340 1

转载 c++ STL容器

C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。1、vector    连续存储结构,每个元素在内存上是连续的;    支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操

2017-04-19 21:55:47 258

原创 【神搜递归】统计问题

统计问题Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8713    Accepted Submission(s): 5163Problem Description在一无限大的二维平面中,我们做如下假设:

2017-04-13 18:33:39 419 1

原创 【栈的简单使用】括号配对问题

括号配对问题时间限制:3000 ms  |  内存限制:65535 KB难度:3描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入3[(])(])([[]()])样例输出NoNoYes

2017-04-10 14:26:22 889

转载 八皇后问题

问题描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出第b个串

2017-03-30 15:30:42 1157

原创 【广度遍历】图像有用区域

图像有用区域时间限制:3000 ms  |  内存限制:65535 KB难度:4描述“ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色。                     图1                    

2017-03-30 15:26:06 496

原创 【动态规划】棋盘分割问题

描述将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行) 原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和。现在需要把棋盘按上述规则分割成n块矩形棋盘,并使各矩形棋盘总分的均方差最小。 均方差,其中平均值,x

2017-03-29 21:06:49 2930

原创 HDU1257 最长递增公共子序列问题

最少拦截系统Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)Problem Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一

2017-02-17 09:45:40 347

原创 C++中throw异常

throw是C++中关键字,用来抛出异常。不使用关键字throw,try就什么异常也捕获不了,throw的使用语法规则:throw data; data为定义的异常数据类型.throw抛出异常通常用来解决,内存空间不足,数组下标,数据类型初始化数值类型不对。例如char *q=0; throw 0;数组为10个,输入数据为11个。#include #include using

2016-09-08 16:58:39 709

转载 从c++到java的简单过渡

对于有C++经验的人来说,学java感觉和C++并没有太大差别C++的主要核心内容为类和对象的运用,涉及对对象的继承,但是对于java来说它简化了c++中关于类的比较繁琐的部分,C++构造动态数据分配时,C中还有对于指针,可以说指针是非常恶心的,往往会造成系统奔溃,数据的分配不明确,java全部是类,全部都是在类中的编程机制,除去对于系统的内存的cahe这些东西之外,可以说java就是神,神说

2016-04-30 19:55:23 1338

空空如也

空空如也

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

TA关注的人

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