自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构应用标准模版库STL——表的操作(没有重复的有序表)

表是按位置保存的一个元素序列。因为不允许下标访问,因此为了访问元素的值,我们必须通过其前面的一个元素。然而,所有的插入和删除操作的是ian复杂度均为O(1),即使是那些在表内部执行的操作也是如此。想比较而言,在序列中相应的向量操作的时间复杂度为O(n).List类熟悉的操作偶: push_back()和pop_back()。然而,表为表头front()增加了相应的操作push_front()和

2013-11-24 16:22:33 1195

原创 数据结构应用标准模版库STL——向量的操作(对排序后的子表进行排序)

向量是基于模版的类,它存储相同数据类型的元素。与数组一样的是,向量对象允许通过下标运算符直接访问元素。然而,与数组不同的是,向量保留其大小信息,且提供先关的size()函数,利用此函数可以访问向量的元素个数。向量对象允许在赋值语句任何一边使用下标运算符。声明向量对象:e.g  vector intVector(5)表示长度为5的向量,包含整型数值0.vector strVector(10)

2013-11-24 00:05:22 1385

原创 数据结构应用标准模版库STL——优先级队列(优先级队列排序)

优先级队列的抽象模型并不把数据存储结构看成是顺序容器。元素在进入优先级队列时,没有任何限制,但在退出时却有一个标准。我们可以把优先级队列想象成数据元素的集合,元素就像被随便丢到垃圾桶一样,彼此没有什么联系。联系数据时像把手伸到桶里,挑一个优先级最大的出来。优先级队列ADT的接口与栈,队列容器几乎相同。但是,为了确定优先级的大小,数据类型T必须实现关系运算符默认情况下,优先级队列假定凡具有最

2013-11-22 18:35:05 1381

原创 数据结构应用标准模版库STL——队列的基本操作

队列的基本操作有size(), empty(),push(),front(),pop();#include#includeusing namespace std;int main(){ int arr[]={5,7,9,4,6,8,3,2,1},i; int arrsize=sizeof(arr)/sizeof(int); queue arrQueue; cout<<"

2013-11-22 15:28:12 1206

原创 数据结构应用标准模版库STL——栈(分解栈元素)

我们开发出一种算法:uncouple(),它使用辅助栈查找和从当前栈中删除第一次出现的元素target。重复地删除栈顶部的元素,并将其推入到辅助栈中,知道找到target.使target从原来的栈中出栈,然后按次序将辅助栈中每个元素推入到原来的栈。如果发生了分解操作,函数返回true,否则返回false;#include#includeusing namespace std;t

2013-11-22 13:22:36 1028

原创 数据结构应用标准模版库STL——栈(进制转换)

多数编程语言中的输出语句以10进制(基为10)作为默认格式显示整型数据。对于有些应用,特别是系统程序,,可能想用2进制(基为2),8进制(基为8)或(16)进制输出。这时候可以编程实现10进制到n进制的转换。可以采用除数取余法。出发过程得到的余数为最终的输出,但应按相反的顺序。比如余数是2,1,3,这正确输出应该是312;使用栈的LIFO(先进后出)的特性,我们把余数一个个入栈,待除数为0

2013-11-22 11:55:24 1327

原创 筛选法及预处理

例1-素数判断题目描述:给定一个N(1Sample Input:45Sample Output:NOYES朴素算法:#includeint main(){ int i,n; while(scanf("%d",&n)==1) { for(i=2;i<n;i++) if(n%i==0) break; if(i==n)

2013-11-15 16:54:50 785

原创 HDU-1272 小希的迷宫(并查集判断输入的数据是否能成为一颗树)

Problem Description上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路

2013-11-15 16:35:23 1189

原创 HDU-1232 畅通工程(并查集的使用)

Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?  Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N

2013-11-15 15:16:12 782

原创 宗教信仰(并查集)

问题描述:现如今世界上有如此多的宗教信仰,要将它们所有的都保持联系是非常困难的。你对于找出在一个大学里面同学们有多少不同的宗教信仰感兴趣。 你知道这个大学里面有n个学生。如果让你去一个一个问每一个学生的宗教信仰是不可能的。而且,许多学生不愿意表露他们的宗教信仰。有个方法可以避免这个问题,就是去问m(0输入数据包括情况的数目,每一种情况包括有数据n和m,接下来的m行包括了两个数据i和j,

2013-11-15 14:53:16 2290

原创 HDU-2199 二分查找

/*给出方程:       8*x4 + 7*x3 + 2*x2 + 3*x + 6 = Y其中,实数Y满足 (fabs(Y) 请输出x在区间[0,100]的解,结果精确到小数点后4位。  当数很大的时候用暴力枚举就不适合,所以采用二分查找*/Problem DescriptionNow,given the equation 8*x^4 + 7*x^

2013-11-15 11:26:47 1751

原创 基础搜索题——油田合并(深度搜索)

某石油公司发现了一个油田。该油田由n*m个单元组成的矩形,有些单元里有石油,有些则没有。单元油田可以通过上,下,左或右连通。在一个单元油田里架设一台采油机,它可以把和该单元油田相连的单元油田的石油采完。该公司想知道最少需要架设几台采油机能把所有的石油采完?输入先输入2个正整数n,m(1输入到文件结束。输出对于每组测试,输出最少需要架设几台采油机。样例

2013-11-15 10:55:57 1761

原创 算法之排序——插入排序

插入排序的基本思想是,对数组元素a[l]~a[r],经过前i-l遍处理后,a[l],a[l+1],.....a[i-1]已排好序。下一轮处理就是要将a[i]插入到a[l],a[l+1],.......a[i-1]的合适位置,即插入到前面的有序数列中,使得a[l],a[l+1],........a[i]是排好序的序列。  要达到这个目的,可以用顺序比较的方法,首先比较a[i]和a[i-1];如果a[

2013-11-13 18:34:56 1023

原创 算法之排序——交换排序(选择排序,冒泡排序)

选择排序:选择排序是交换排序的一种,从字面上理解就是交换元素以达到排序的目的。选择排序算法的基本思想是对待排序的元素序列a[l]~a[r]进行r-l遍处理,第i遍处理是将第i小的元素放到第i个位置上,这样排序i次后前i小的元素都已经确定,下一次排序从第i+1个位置开始,对之后的元素与第i+1个元素进行比较,如果找到某元素比第i+1个位置上的元素还小,则交换。C语言代码://

2013-11-13 14:05:37 1901

原创 数据结构之用邻接表实现图(详解)

用邻接表表示图G=(V,E)时,对每个顶点i属于V,将它的所有邻接顶点存放在一个表中,这个表称为顶点i的邻接表。对每个顶点的邻接表存储在图G的邻接表数组中。#include#include#include//*********************************//打印错误信息void Error(char *s){ printf("%s",s); ex

2013-11-12 21:30:36 2973 1

原创 数据结构之用邻接矩阵实现赋值无向图,有向图,无向图

用邻接矩阵表示赋权无向图时,将一个赋权无向图G当作一个赋权有向图来处理,将G的每一条边(i,j),用两条有向边(i,j)和(j,i)来代替。因此,加入边权为w的有向边(i,j)时,还应同时加入边权为w的有向边(j,i);  删除边时同理其余操作同 邻接表实现赋值有向图#include#include#include//int noEdge=0;//数据结构typedef st

2013-11-11 23:23:39 3342

原创 数据结构之图用邻接矩阵实现赋值有向图

从图的结构和概念上看,可将图分为赋权有向图,赋权无向图,有向图和无向图四种不同类型。其中,赋值有向图具有比较一般的特征。用邻接矩阵表示法中,用一个二维数组来存储图中各边的信息。用邻接矩阵表示一个n个顶点的有向图时,所需空间为n*n。输入邻接矩阵和查询一遍口需要n*n的时间。当图的边数远小于n*n时,该方法就会很浪费时间和空间,而用邻接表来表示图会更有效。#include#in

2013-11-11 23:13:03 2930

转载 图的深度遍历

深度优先遍历是连通图的一种遍历策略。其基本思想如下:设x是当前被访问顶点,在对x做过访问标记后,选择一条从x出发的未检测过的边(x,y)。若发现顶点y已访问过,则重新选择另一条从x出发的未检测过的边,否则沿边(x,y)到达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点x,并且再选择一条从x出

2013-11-11 20:33:34 778

原创 数据结构之图的存储结构——静态建表(链式前向星)

邻接表的静态建表存储图的凡是也称链式前向星。链式前向星方法最开始是基于前向星,是以提高其构造效率为目的设计的存储方式,最终形成的数据却是一个变形的邻接表。链式前星采用数组模拟链表的方式实现邻接表的功能,并且使用很少的额外空间,可以说是目前建图和遍历效率最高的存储方式。  head数组存储描述点Vi边信息的链的起点在Edges数组的位置。构造链式前向星就是将新加入的节点链在对应链的最开始并修

2013-11-10 00:34:01 1534

原创 数据结构之图的存储结构——动态邻接表

邻接表是图的一种链式存储结构。对于图G中每个定点Vi,把所有邻接于Vi的顶点Vj链成一个单链表,这个单链表称为顶点Vi邻接表。邻接表有三种实现方法,分别为动态建表实现,使用STL中的vector模拟链表实现和静态建表实现。   动态建表中建立一个VNode的数组就可以访问每个顶点的邻接表。动态建表要求对于每个读入的边数据新建一个EdgeNode对象,加到对应的VNode的邻接表里,同时

2013-11-09 19:52:19 1395

原创 数据结构之图的存储结构_前向星

前向星是一种通过存储边信息的方式存储图的数据结构。它的构造方式非常简单,读入每条边的信息,将边存放在数组中,把数组中的边按照起点顺序排序,前向星就构造完成了但是为了查询方便,会有一个数组存储起点为Vi的第一条边的位置#include#include#includeconst int maxn=100;const int maxm=100;int head[maxn];str

2013-11-09 11:26:53 719

原创 算法之二分搜索法

二分搜索算法是是运用分治策略的典型例子。二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取a[n/2]与x进行比较,如果x=a[n/2],则找到x,算法终止,如果x如果x>a[n/2],则只要在数组a的右半部进行搜索x。#includeclass example{public: int *a; example(int n); int binarySe

2013-11-06 23:13:20 799

仿美团筛选栏

仿美团筛选栏,自定义控件,实现自动创建tab, 降低耦合度

2015-10-13

空空如也

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

TA关注的人

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