
C/C++
文章平均质量分 65
Mastli
我会更强
展开
-
八皇后 c语言递归实现方法(带注释)
#include #include int count;//递归法实现八皇后问题//参数row表示起始行,参数n表示列数//参数(*chess)[8]表示指向棋盘每一行的指针int notdanger(int row,int j,int (*chess)[8]){ int i,k; //判断列方向 for(i=0;i<8;i++){ if(*原创 2015-05-28 23:08:18 · 8462 阅读 · 7 评论 -
【STL】next_permutation的原理和使用
转自http://leonard1853.iteye.com/blog/14500851、碰到next_permutation(permutation:序列的意思)今天在TC上碰到一道简单题(SRM531 - Division Two - Level One),是求给定数组不按升序排列的最小字典序列(Sequence of numbers A is lexicographically smalle...转载 2015-04-20 21:21:10 · 490 阅读 · 0 评论 -
next_permutation函数
转自http://blog.youkuaiyun.com/acdreamers/article/details/8544505next_permutation的函数声明:#include <algorithm> bool next_permutation( iterator start, iterator end);next_permutation函数的返回值是布尔类型,在STL中还有perv_...转载 2015-04-20 21:24:21 · 679 阅读 · 0 评论 -
全排列的递归算法(包括字典序输出和非字典序输出)
第一种:(字典序)#include #include #include int a[10],p[10],vis[10];//标记为1则说明已固定int n;void digui(int l){ int i; if(l>n){ for(i=1;i<n;i++){ printf("%d ",p[i]); }原创 2015-05-16 17:47:23 · 4047 阅读 · 1 评论 -
C语言四舍五入的实现方法。
今天在oj上看到了一道看起来很简单的题目,结果四舍五入竟然找不到很好的算法实现,百度了一下发现...这么简单!!!所以还是要继续努力啊,加油!Description在我们的日常学习、生活、工作中要分得清主次,既能抓问题的主要矛盾,也能注意到次要矛盾。例如两个整数相除,结果的整数部分是它的重心之所在,但是小数部分也不能忽视。现给出2个整数a,b,求a/b的整数部分和小数部分。原创 2015-04-16 21:00:27 · 61552 阅读 · 4 评论 -
递归法实现反向输出字符串
#include #include char s[100];char digui(){ char c; scanf("%c",&c); if(c!='\n'){ printf("%c",digui()); } return c;}int main(){ printf("%c",digui()); return 0原创 2015-05-28 23:15:33 · 827 阅读 · 0 评论 -
约瑟夫问题——链表实现
据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2个人(因原创 2015-05-28 23:16:49 · 1316 阅读 · 0 评论 -
线索二叉树的实现
#include #include typedef char elemtype;//线索储存标志位//link(0)表示指向左右孩子的指针//link(1)表示指向前驱后继的线索typedef enum {link,thread}pointertag;typedef struct bithrnode{ char data; struct bithrnode *lc原创 2015-05-28 23:32:41 · 535 阅读 · 0 评论 -
迪杰斯特拉/dijkstra 算法模板(详细注释)
迪杰斯特拉算法的模板(带详细注释)原创 2015-08-17 08:03:12 · 6443 阅读 · 2 评论 -
关于c/c++中的isdigit()函数
关于isdigit函数isdigit函数只能判断字符型是否是数字如下#include #include using namespace std;int main() { char c;//此时输入的是整型数字 while (cin>>c) { if (isdigit(c)) { cout<<c<<"是数字"<<endl;原创 2016-11-06 22:42:32 · 48025 阅读 · 0 评论 -
关于C++中String串是否以'\0'结尾
写程序要判断是否读到string尾,我在visual studio 2015上尝试了一下。string a = "x";if (a[1] == '\0')cout << "yes";else cout << "no" << endl;cin.get();结果输出为yes也就是说,在visual studio 2015上的编译器是将string的结尾视为'\0'的,但是我没原创 2016-11-09 10:53:11 · 3139 阅读 · 0 评论 -
常量指针与指针常量的区别
//指针常量只能改变指向的内容,不能改变指针指向的地址int main(){ int a = 0; int b = 2; int *const p2 = &b;//指针常量 cout<<"p2:"<<*p2<<endl; *p2 = a; //p2 = &a; //报错 cout<<"p2:"<<*p2<<end原创 2016-11-19 19:24:45 · 425 阅读 · 0 评论 -
读文件时输入流ifstream中函数tellg()与seekg()的详解与示例
读取文件时有时会需要回退比如读完第n行想回退到第n-1行再读一次n行或者读字符时想回退到n个字符之前都可以使用tellg()和seekg()tellg() 用于在输入流中获取位置seekg()用于设置在输入流中的位置其实本质上文件读写就是一个指针指向文件中某个位置后进行读写,所以简单来说tellg()和seekg()都是用于设置该指针的位置的。//t原创 2017-05-23 11:14:14 · 15400 阅读 · 1 评论 -
动态数组自增策略的复杂度分析
由于编程时很难准确预知需要多少空间。比如申请了一个定长的数组存放数据,但是突然发现数组填满了,因此需要一个更大的数组来填放数据,这就涉及了数组的自增策略问题。定增策略定增策略每次扩容将数组长度增加定长。设我们需要一个长为nnn的数组,数组初始长度为III,每次扩容的大小为III,则n=(m+1)In=(m+1)In=(m+1)I,mmm为扩容次数。第一次扩容需要一块2I2I2I长度的数组空间来...原创 2019-06-07 16:38:43 · 661 阅读 · 3 评论