学习笔记
文章平均质量分 80
仅是路过
这个作者很懒,什么都没留下…
展开
-
C++学习笔记(面向对象化程序设计的类)
从C语言过度到了C++的学习阶段,初步了解到了面向过程的程序设计与面向对象的程序设计的不同,而面向对象化的程序设计过程中,其中一个很重要的思想就是类的思想,这里就要简单阐述我初步学习的面向对象程序设计的类这一思想。 类是面向对象程序设计的核心,利用类可以实现对数据的封装和隐蔽。在面向对象程序设计中,程序模块是又类构成的。类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。原创 2012-12-06 22:22:00 · 484 阅读 · 0 评论 -
KMP模板
详情点击http://blog.csdn.net/v_july_v/article/details/7041827 这里只是贴上模板备忘。 void GetNext(char str[]) //求next数组 { int len = strlen(str); int i = 0; int j = -1; while(i < len - 1) { if(j == -1 |翻译 2014-01-11 16:12:50 · 483 阅读 · 0 评论 -
c中static作用
1. static 变量 静态变量的类型说明符是static。静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量。例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 2. 静态局部变量 静态局部变量属于静态存储方式,它具有以下特点: (1)静态局部变量在函数内定义它的生存期为整个源程转载 2013-12-09 21:31:07 · 708 阅读 · 0 评论 -
基于邻接表建图的几种方法
最近做图的题比较多,除了克鲁斯卡尔和floyd,像广搜,普里姆,Bellman-Ford,迪杰斯特拉,SPFA,拓扑排序等等,都用到图的邻接表形式。 数据结构书上表示邻接表比较复杂,一般形式如下: typedef struct Node { int dest; //邻接边的弧头结点序号 int转载 2013-04-16 10:01:45 · 868 阅读 · 0 评论 -
整数划分问题解法2-动态规划
原文来自:http://blog.csdn.net/athenaer/article/details/8265234 整数划分 --- 一个老生长谈的问题: 1) 练练组合数学能力. 2) 练练递归思想 3) 练练DP 总之是一道经典的不能再经典的题目: 这道好题求: 1. 将n划分成若干正整数之和的划分数。 2. 将n划分成k个正整数之和的划分数。转载 2013-04-12 21:10:34 · 515 阅读 · 0 评论 -
程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦
程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结 (本人和朋友一起做的为学论坛,今2013年元旦正式上线:http://www.51weixue.com/,祝大家新年快乐) 作者:July--结构之法算法之道blog之博主。 时间:2010年10月-2012年11月。 出处:http://blog.csdn.net/v_JULY_v 。 声明:版权所有,侵犯转载 2013-03-12 17:53:22 · 782 阅读 · 0 评论 -
HDU1285-拓扑排序
总算放假了,这学期该死的科目,纠结死了!呵呵!今天开始正式的假期学习! 今天看了一个新的数据结构,拓扑排序! 拓扑排序: 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若 ∈E(G),则u在线性序列中出现在v之前。 通常,这样的线性序列称原创 2013-01-18 10:30:28 · 1954 阅读 · 0 评论 -
嵌入式linux入门学习内容指南
1、 Linux基础 安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统能够熟练使用Linux系统的基本命令认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践设置Linux环境变量定制Linux的服务 Shell编程基础使用vi编辑文件使用Emacs编辑文件使用其他编辑器转载 2012-12-12 18:59:10 · 295 阅读 · 0 评论 -
基于贪心算法的几类区间覆盖问题
(1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1,4],[3,6],[3,7],[6,8],[2,4],[3,5] 解题过程: 1将每一个区间按照左端点递增顺序排列,拍完序后为[1,4],[2,4],[2,6],[3,转载 2013-03-04 16:48:03 · 741 阅读 · 0 评论 -
C课程设计
这是我很久很久以前做的C语言的课程设计,今天又看到了,索性把这段代码贴到博客来 #include #include #include #include int root; struct student { int num; char name[50]; int age; char sex[50]; char yuanxi[50]; int classnum; }原创 2013-02-28 10:44:53 · 746 阅读 · 2 评论 -
Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)
Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先) 作者提示:在阅读本文之前,请确保您已经理解并掌握了基本的Tarjan算法,不会的请到http://hi.baidu.com/lydrainbowcat/blog/item/42a6862489c98820c89559f3.html阅读。 基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割转载 2013-01-30 14:12:14 · 280 阅读 · 0 评论 -
拓扑排序模板(备忘之用)
自己写了个拓扑排序的模板,以便备忘之用: //int n,m; void sb() { for(int num=1;num<=n;num++) { j=1; if(b[j]!=0) { while(1) { j++; if(b[j]==0) break; else if(j>n) break; } }原创 2013-01-19 11:39:14 · 258 阅读 · 0 评论 -
RMQ问题之Sparse_Table算法
RMQ问题,全名(Range Minimum/Maximum Query),是求给定区间中的最值问题。 主要方法及复杂度如下: 1、朴素(即搜索),O(n)-O(qn) online。 2、线段树,O(n)-O(qlogn) online。 3、Sparse_Table(实质是动态规划),O(nlogn)-O(1) online。 4、RMQ标准算法:先规约成LCA(Lowest C翻译 2013-01-18 10:42:44 · 376 阅读 · 0 评论 -
STL 优先队列的优先级
struct cmp1 { bool operator ()(int &a,int &b) { return a>b;//最小值优先 } }; struct cmp2 { bool operator ()(int &a,int &b) { return a<b;//最大值优先 } };转载 2013-03-21 14:37:51 · 644 阅读 · 0 评论 -
最小公倍数与最大公约数的调用函数
int gcd(int a,int b)//**最大公约数**// { if(b==0) return a; return gcd(b,a%b); } int lcm(int a,int b)//**最小公倍数**// { int c=gcd(a,b); return a*b/c; } 原理及其详细证明 设两数为a、b(b转载 2013-03-19 14:51:16 · 580 阅读 · 0 评论 -
c/c++常见面试题
1. C中static有什么作用 (1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。 (2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量转载 2012-12-28 15:29:00 · 277 阅读 · 0 评论 -
<stack>,<queue>,<vector>的用法
分别包含在文件,, 定义: stack s; queue q; vector v; stack的方法: push()的向容器顶部里插入元素; pop()是删除容器顶部的元素; top()返回容器顶部的元素; size()返回容器的元素个数; begin()是返回一个位于容器的第一个元素的迭代器; end()当然是最后了; empty()是检查是否为空的方法转载 2012-12-10 16:06:39 · 397 阅读 · 0 评论 -
STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
向量(vector) 连续存储的元素 Vectorc; c.back() 传回最后一个数据,不检查这个数据是否存在。 c.clear() 移除容器中所有数据。 c.empty() 判断容器是否为空。 c.front() 传回地一个数据。 c.pop_back() 删除最后一个数据。 c.push_back(elem) 在翻译 2013-01-21 15:36:31 · 245 阅读 · 0 评论 -
重建二叉树
输入某二叉树的前序遍历和中序遍历结果,重建出二叉树。 对于这个问题,我们首先要明白二叉树的性质,在二叉树的前序遍历中,第一个数子总是树的根节点的值,在中序列中,根节点的值总在序列的中间,而在后序遍历中,根节点的值总是在序列的最后一个。因此我们需要扫描中序遍历序列,才能找到根结点的值,并不断递归得分成左右两部分,下面是实现代码: #include #include #include原创 2014-01-23 18:54:44 · 607 阅读 · 0 评论