- 博客(20)
- 收藏
- 关注
原创 Kahn算法-拓扑排序
/*时间:2015/11/22内容:拓扑排序的实现(可用于判断图中是否有环路)概述:基于Kahn算法(DFS算法的实现),采用邻接表的方式来存储有向无权图,并实现对图的拓扑排序,在给出拓扑序列的同时,也能判断图中是否存在环路(即没有拓扑序列)操作:邻接表的创建 邻接表的打印 拓扑排序及其辅助函数*/#include<iostream>#include<vector>#include<deq
2015-11-22 16:30:55
2042
原创 堆栈经典应用:表达式求值、后缀表达式
引言 表达式求值的思路可以是直接处理中缀表达式,也可以采用后缀表达式进行转换求值,这篇文章将按照以下思路: 优先级的概念 ->什么是中缀后缀表达式 ->后缀表达式的优点 ->中缀表达式如何转换为后缀表达式 ->后缀表达式的运算 ->具体代码实现优先级 表达式求值是一个数据结构中的经典问题,要求对表达式中的运算优先级不能忽略,在此现规定运算符的优先级如下: ‘*’ ‘/’ > ‘+
2015-09-12 15:22:33
2276
原创 Hackerrank-Data structures-Tree
基本的简单题目,很适合数据结构入门用,基本就是先中后遍历、层序遍历、测树的高度、打印树的左右侧节点、插入、交换子树、哈夫曼解码等等基础操作 难度是Moderate的 1.Tree: Huffman Decoding/*名称:Tree: Huffman Decoding难度:Moderate类别:/思路:题目本身不难,弄懂题意就好:按照他的意思将哈夫曼编码解码即可*/#include<i
2015-07-25 14:02:20
743
原创 由前序(后序)中序构造二叉树
(注:父节点P 左子树L 右子树R) 结论:只有中序遍历+前序遍历 或者 中序遍历+后序遍历能得出树的构造,而前序遍历+后序遍历不能构造出树 原因 以下是任何一棵二叉树的三种遍历结果 先序遍历 P L R 中序遍历 L P R 后序遍历 L R P 构造出一棵树的重点在于分清左右子树,而先序和后序遍历中左右
2015-07-25 10:44:13
682
原创 哈夫曼树(最优二叉树)的创建
哈夫曼树是带权路径最小的一种特殊二叉树,所以也称最优二叉树。 在这里不讨论基本概念如如何计算路径等,而只着重于树的创建,具体过程让我们举例而言。其基本的原理为:将所有节点一开始都视为森林,每次从森林中选取两个根节点权值最小的树合并为一棵新树,新树的根节点大小为两个子节点大小的和,并将这棵新树重新加入到森林中。 如此一来每一轮操作都可以简化为两个基本操作:合并两棵树、插入新树,直到森林中只剩下一棵
2015-07-23 17:16:32
3230
1
原创 最大最小堆的插入与删除
最大堆、最小堆是一种用可用数组存储,并模拟实现二叉树的数据结构。 最大(小)堆具有以下的显著性质: ●最大(小)堆是一棵树,且是完全二叉树。 ●最大(小)堆是每个根节点都一定大(小)于等于其子节点。 ●在具体的存储时数组的[0]位置存放一个哨兵元素用于插入时防止越界,且由于这是 一棵完全二叉树,位于[i]的节点其对应的父节点刚好是[i/2]。 ●这里讨论的是二叉堆,以下代码对应
2015-07-20 11:05:05
8351
原创 HackerRank String
Alternating Characters 思路:还是遍历,就看有几个连续且重复的就行 难度:Easy#include<iostream>#include<string>using namespace std;int detele[10];void to_detele(string test,int i){ for (int j = 0; j < test.length() -
2015-06-30 14:14:02
602
原创 最短路径 Dijkstra算法
斗争了整整三天,终于实现了Dijkstra算法的第一个版本。 这次是用C++实现的,顺道集成了BFS与DFS。 这次的代码质量不高,就只发发代码和测试结果得了,下次完善代码之后,写一个篇专门的博文发上来以下是测试 测试用图1: 测试结果1: 测试用图2: 测试结果2:接下来是代码 注释太多了,凑活着看吧/*名称:图的最短路径---Dijkstra算法的实现与应用描述:主体写为类的形
2015-06-19 15:57:57
427
原创 HackerRank-Data Structure-linked list
欢迎留言指正,我会及时修改题目的难度都是Easy,也就是些基本操作的实现,没有难度。 特别说明一下,这些题目只要求实现对应某一个函数或功能,故只有代码片段Insert a node at the tail of a linked list 解决思路:尾插法的实现 难度:EasyNode* Insert(Node *head, int data){ Node *tail,*temp_o
2015-06-11 13:40:11
697
原创 深度优先搜索、广度优先搜索的实现
鉴于本人太菜,欢迎留言指出不足,我会及时修改包括的操作:图的创建 图的矩阵的打印 深度优先搜索的递归算法 广度优先搜索的递归算法测试使用的图 图的记录方式 常用邻接矩阵或邻接表,此例中的矩阵便是: a 1 0 0 1 1 1 b 1 1 0 0 0 1 c 1 1 0 0 1 1 d 1 0 1 0 1 1
2015-06-08 22:20:27
459
原创 HackerRank热身赛代码(二)
ACM ICPC Team 思路:遍历 难度:Easy#include<stdio.h>int max_topics=0;int result[500];int main(){ int T,N; char ACM_Team[500][500]; scanf("%d%d",&T,&N); for (int i = 0; i < T; i++) {
2015-06-05 20:09:26
924
原创 HackerRank 热身赛代码(一)
HackerRank 热身赛代码(一)所有的题目都简单,就不写注释了Utopian Tree 思路 一个简单的数列,找到通项公式就搞定 难度Easy#include<stdio.h>#include<math.h>int height(int cycles){ if (cycles == 0) return 1; if (cycles % 2 =
2015-05-28 18:10:25
892
原创 平衡二叉树
时间:2015.5.15 名称:平衡二叉树(AVL树) 包含的操作:创建树,清空,搜索二叉树插入节点,返回树的高度,返回树的最大值,返回树的最小值,返回某个节点的父节点,删除某个节点,四种旋转操作LL、RR、LR、RL。 平衡二叉树的简介:
2015-05-15 16:22:09
856
原创 安卓界面常用组件
Andriod UI 一、Andriod布局FrameLayout框架布局LinerLayout线性布局RelativeLayout相对布局TableLayout表格布局AbsouluteLayout绝对布局这些布局文件用XML描述,所有的视图ID都会在R中生成对应的变量 度量Px:像素Dp:屏幕的物理尺寸,大小为1英寸的1/72Sp:与dp类似
2015-05-07 15:59:44
975
原创 Servlet和JDBC的登陆实现应用
时间:2015/4/16标签:JAVA、MySQL、JDBC涉及知识:JDBC、Servlet、jsp 一、前期准备:由于涉及JDBC的应用则需要在工程中添加对应的jar包。以下是添加过程右键--> Properties --> Java Build Path --> Libraries --> Add External Jar --> 选择对应的包
2015-04-16 21:30:37
614
原创 排序算法学习笔记-C语言版本
//冒泡排序//简介:冒泡排序将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为ki的气泡。//根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R;凡扫描到违反本原则的轻气泡,就使其向上"漂浮"。//如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。#include#define n 10int main(){ i
2015-04-12 22:31:25
508
原创 MySQL的学习笔记
Mysql的学习:一.mysql入门及开启关闭:1.mysql简介:最普遍的,开源的,关系型,跨平台的数据库,对各种开发语言有着良好的支持,对容量没有限制。mysql大致分为服务器端(mysql)和客户端(mysqld)。2.mysql的打开:执行安装目录下的bin文件夹中的mysql.exe可以直接打开mysql。 同样的通过cmd命令进入相同的安装路径,然后执行my
2015-04-12 22:18:41
651
原创 开发实例 PM2.5实时监测
开发实例 PM2.5实时监测本次开发中所需要的知识点:1. JSON格式的数据解析。2. 在Andorid中使用URL和AsyncTask加载网络数据。 JSON格式的数据解析: JSON格式的数据在前文中已经有所提及,在此就不在过多的提及,JSON格式的数据的操作应该视源数据的格式而定,在此例中的JSON的操作并不涉及全部提供的数据,而
2015-04-12 20:23:18
2206
原创 XML的读取和解析以及输出
XML的读取和解析以及输出XML的简介 XML即是Extensible Markup Language的缩写,是一种用于标记电子文件使之具有结构性的标记语言。XML是HTML的一个子集,并非是HTML的替代,二者具有相似性和区别。XML可以用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,具有以下特性:1. XML类似于HTML。2.
2015-04-12 20:19:58
1262
原创 对JSON格式数据的操作和解析和创建
对JSON格式数据的操作和解析和创建JSON简介:JSON是JavaScript Object Notation的简写,JSON是一种轻量级的数据交换格式,其基于JavaScript的一个子集。JSON采用独立于程序语言的的文本格式,但类似于C语言家族。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(网络传输速度)。 JSON的语法规则:
2015-04-12 18:50:21
794
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人