c/c++
cassiePython
一入代码深似海,从此妹子是路人
展开
-
一个简易的计算器程序
/*记得数据结构老师说过可以一边进行中缀表达式的后缀转换/* 一边进行计算器的运算,今天无聊就把这个大体实现了一下/*不过还有一些问题:1.还不能支持所有的数据类型/* 2.对于多位数处理还有BUG/* 3.对于右结合性的运算符还没有实现 *//*先这样吧 有时间再改 */#include#include#includeusing n原创 2014-08-06 19:57:43 · 1474 阅读 · 0 评论 -
考研复试系列——第十一节 map的使用
考研复试系列——第十一节 map的使用前言在考研上机试题中,还是经常出现一些类如词频统计的问题的,解决这类问题通常使用哈希表,在C++的STL当然提供了对其支持,比如c++中的hash_map。在实际做题中,我们只需要使用map就OK了 。map与hashmap的用法基本一致,但底层实现是不同的,前者使用红黑树实现,后者使用哈希表实现。当然在做题中直接map就足够了。所以这里只记录原创 2017-03-12 10:29:24 · 930 阅读 · 0 评论 -
考研复试系列——第十节 字符串问题
考研复试系列——第十节 字符串问题前言关于字符串的问题可能是考试题目当中出现次数最多,涉及内容最广的内容了。主要有以下几个方面:字符串的匹配(暴力,KMP,Sunday,DFS等等)。求一个字符串的子串,字符串的反转,字符统计,字符查找。内容很多,但考试并不难,KMP可以不用,后缀树只在ACM中见过。另外别忘记还有C++强大的STL给我们提供关于string的一系列操作,在原创 2017-03-11 11:09:13 · 882 阅读 · 0 评论 -
考研复试系列——第七节 最短路径
考研复试系列——第七节 最短路径前言前面我们学习了DFS算法,利用DFS算法,我们以每一个顶点为开始节点进行DFS,最后进行比较也可以求得最短路径,但是复杂度不能满足我们的需求。现在我们通过Floyd算法和Dijkstra算法来解决最短路径问题。Floyd算法Floyd算法的思想很简单,就是借助第三个点来优化另外两个顶点的距离。比如我们有三个顶点A,B,原创 2017-03-06 10:51:17 · 1155 阅读 · 0 评论 -
考研复试系列——第三节 二叉树&二叉排序树
考研复试系列——第三节 二叉树&二叉排序树前言二叉树是非常重要的一个概念,也是复试中经常考察的内容,对于二叉树的各种遍历我们都需要熟练的掌握,并在此基础上解决一系列的问题。基础知识首先我们要学会二叉树的构造,在C++中常常使用类来实现二叉树的定义,这里举个例子。/*给定一棵用链表表示的二叉树,求二叉树结点数目*/#includeusing原创 2017-02-27 13:05:00 · 527 阅读 · 0 评论 -
考研复试系列——第九节 数论基础
考研复试系列——第九节 数论基础引言 首先引入一道简单的题目来说明一下最近看到的一个小技巧 ,觉得挺不错的 ,该部分内容来源于 《王道论坛》 。写个算法,对 2 个小于 1000000000 的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5样例输入:123 45样例输出:54这原创 2017-03-09 10:18:27 · 819 阅读 · 0 评论 -
考研复试系列——第二节 最大堆&最小堆
考研复试系列——第二节 最大堆&最小堆前言在中科大,上交,浙大的上机题目中,堆的使用频繁出现,在机试时我们不可能从头到尾自己去实现最大堆,最小堆的操作绕过对堆的实现,我们使用C++ STL中的优先队列来解决堆的相关问题基础知识随便举个例子,给定一个n和m ,接下来输入n个数,计算这n个数中前m个最大的数(当然可以用排序来做)#include原创 2017-02-26 12:50:51 · 685 阅读 · 0 评论 -
考研复试系列——第一节 文件操作
考研复试系列——第一节 文件操作前言在考研复试中有不少上机题目需要读写文件,并在此基础上进行其他的运算,因此文件操作是必须要掌握的,本篇文件对C++的文件操作进行总结整理,并给出一些学校的上机例题。基本操作第一,文件的打开与关闭#include#include //引入头文件,包含文件读写操作using namespace std;原创 2017-02-26 11:00:27 · 1166 阅读 · 0 评论 -
考研复试系列——第八节 拓扑排序
考研复试系列——第八节 拓扑排序前言拓扑排序最适于解决判断一个有向图是不是有向无环图的问题。在考研机试中也是经常出现的,但是题目又各不相同,只要抓住问题的根本,即拓扑排序判断有向无环图的本质就可以以不变应万变。本节依然和前面依然,侧重于说明算法的编程实现。拓扑排序——方法一看了网上其他的资料大多是以图的变化讲解拓扑排序,并没有说明算法实现的过程,所以下面原创 2017-03-08 09:14:29 · 1149 阅读 · 0 评论 -
考研复试系列——第六节 最小生成树
考研复试系列——第六节 最小生成树前言我们在上数据结构时学过求最小生成树主要有两种算法——Prim算法和Kruskal算法,本文主要讨论Kruskal算法的应用,对于详细的原理不再说明。基础知识//Kruskal算法基本原理:/** 1. 初始时所有节点都属于孤立的集合* 2. 按照边的权重的递增顺序遍历,若遍历到的边的两个节点分别属于不同的集合,原创 2017-03-04 10:57:41 · 809 阅读 · 0 评论 -
考研复试系列——第五节 并查集
考研复试系列——第五节 并查集前言http://blog.csdn.net/dellaserss/article/details/7724401/首先附上另一篇博文,对并查集讲解的非常清楚 。所以这里不再重造轮子,只举一些例题加深大家的理解。并查集主要用于表示集合信息,用来确定一个集合中含有哪些元素,判断两个元素是否在同一个集合中,求集合中元素的数量等。原创 2017-03-02 11:23:14 · 884 阅读 · 0 评论 -
考研复试系列——第四节 深度优先搜索
考研复试系列——第四节 深度优先搜索前言深度优先搜索(DFS)算法在ACM中是经常出现的解决问题的算法,相比暴力搜索可以更快的解决问题。深度优先搜索算法的题目从整体架构上是类似的,所以我们先给出一个大体的DFS的模板:dfs: if(判断条件) //在这里进行递归的退出 return; for(遍历内容) //进行遍历,例如图中访问每一个满足某一条件的节点原创 2017-03-01 09:05:01 · 581 阅读 · 0 评论 -
快速排序算法
快速排序算法原创 2015-11-28 10:51:18 · 513 阅读 · 0 评论 -
ls命令的简要实现
ls命令的简要实现#include#include#includeint main(int argc,char *argv[]){ DIR *dp; struct dirent *dirp; if(argc != 2) { printf("suage: ls directory_name\n"); exit(1); } if((dp = opendir(argv[1原创 2015-06-14 10:05:48 · 2350 阅读 · 0 评论 -
黑客编程入门(二。二)
使用注册表来设置程序开机自动启动在上一节我们学了关于注册表的一些编程,这次就让我们利用上节的知识来学习如何利用注册表来实现程序的开机自动启动#include#include#define REG_RUN "Software\\Microsoft\\Windows\\CurrentVersion\\Run"int main(){ HKEY hkey = NULL; LON原创 2015-02-08 22:12:42 · 724 阅读 · 0 评论 -
深度优先搜索算法的应用
深度优先搜索算法的应用题目:输入一个数n,输出1~n的全排列比如一个数3 ,其全排列为:1 2 31 3 22 1 32 3 13 1 2 3 2 1总共有6种情况,学过排列组合的大家肯定都知道比如我们有三个依次排列的箱子和三张分别为1 2 3的手牌,现在我们往箱子里放牌,有多少种方法?我们先往第一个箱子中放,有三种方法,再往第二个箱子中放,有两种方法原创 2015-02-01 10:58:31 · 3512 阅读 · 0 评论 -
黑客编程入门(二)
黑客编程入门(二)注册表下的操作是windows下的黑客不可或缺的东西,今天我们就来用代码操作下注册表什么是注册表?注册表是windows下的一个数据库,用于记录我们的系统和应用程序的各项配置信息。比如它控制着我们的开机就运行的程序,我们的浏览器的主页。我们主要用到以下几个API函数:LONG RegOpenKey( HKEY hkey, //父键句柄 LPCTSTR原创 2015-01-30 14:43:16 · 1012 阅读 · 0 评论 -
求最大公约数的两种解法(欧几里得算法和素数分解)
最大公约数的两种解法(欧几里得算法和素数分解)方法一: 欧几里得算法,又称辗转相除法定理(欧几里得算法):设a和b是正整数,则存在最大求最大公因子d=(a,b)的一种算法,且存在求一组整数s,t使得d = sa+tb举个例子:求168和60的最大公约数? 168 = 2 * 60 + 48 60 = 1 *原创 2015-01-26 17:30:12 · 2416 阅读 · 0 评论 -
考研复试系列——第十二节 后缀表达式&约瑟夫环
考研复试系列——第十二节 后缀表达式&约瑟夫环前言 后缀表达式是一个经常被提及的话题,出题的频率很高,在学习数据结构,算法以及编译原理中,后缀表达式都曾经出现。写后缀表达式的程序关键是搞懂算法的过程,然后就比较简单了。约瑟夫问题在数据结构的链表中出现过,这个比较简单,知道方法就OK了。后缀表达式后缀表达式的算法讲解太多了而且人家写的太好,自认为不及就不再原创 2017-03-14 09:07:14 · 920 阅读 · 0 评论