随笔分类 - Z技术(Arithmetic)
摘要:项目要求 1.已经给出链表定义(本系统用双链表实现更为方便,但是由于要求用单链表,所以按照规定做事) 2.信息录入(当然是添加航班与取消航班了) 3.按照起飞时间先后顺序排列(可以在插入时即顺序插入,但为了体现排序过程,封装成了排序函数) 4.可根据不同关键字进行查询(实现了三种具有代表性的...
阅读全文
摘要:头文件 1 //@ author 成鹏致远 2 //@ net http://infodown.tap.cn 3 //@ qq 552158509 4 //@ blog lcw.cnblogs.com 5 6 #ifndef _MYINCLUDE_H 7 #define _MYINCLUDE_H ...
阅读全文
摘要:顺序哈希表头文件 1 //@ author 成鹏致远 2 //@ net http://infodown.tap.cn 3 //@ qq 552158509 4 //@ blog lcw.cnblogs.com 5 6 #ifndef __HASHSQ_H 7 #define __HASHSQ_H...
阅读全文
摘要:二叉树头文件 1 //@ author 成鹏致远 2 //@ net http://infodown.tap.cn 3 //@ qq 552158509 4 //@ blog lcw.cnblogs.com 5 6 #ifndef __BINTREE_H 7 #define __BINTREE_H...
阅读全文
摘要:单向链表头文件 1 //@ author 成鹏致远 2 //@ net http://infodown.tap.cn 3 //@ qq 552158509 4 //@ blog lcw.cnblogs.com 5 6 #ifndef _LINKLIST_H 7 #define _LINKLIST_...
阅读全文
摘要:顺序队列头文件 1 //@ author 成鹏致远 2 //@ net http://infodown.tap.cn 3 //@ qq 552158509 4 //@ blog lcw.cnblogs.com 5 6 #ifndef __SQUEUE_H 7 #define __SQUEUE_H ...
阅读全文
摘要:顺序栈头文件 1 //@ author 成鹏致远 2 //@ net http://infodown.tap.cn 3 //@ qq 552158509 4 //@ blog lcw.cnblogs.com 5 6 //顺序栈 7 8 #ifndef __SQSTACK_H 9 #define ...
阅读全文
摘要:八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。其解决办法和我以前发过的【算法之美—Fire Net:www.cnblogs.com/lcw/p/3159414.html】类似题目:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问...
阅读全文
摘要:题目概述:Jugs In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with the following puzzle. They were given a 3-gallon jug and...
阅读全文
摘要:题目概述:Fire Net Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representin...
阅读全文
摘要:题目概述:Anagrams by Stack How can anagrams result from sequences of stack operations? There are two sequences of stack operators which can convert TROT ...
阅读全文
摘要:题目概述:Crashing Balloon On every June 1st, the Children's Day, there will be a game named "crashing balloon" on TV. The rule is very simple. On the gr...
阅读全文
摘要:Preface 因为最近一直在搞硬件的东西,所以暂时没管自己专业的东西,昨晚一童鞋问到一个网络里面的算法时,突然发现自己的强项,已然不是强项了,于是总结了一下 硬件的东西,其实是比较死的东西(对于目前的我来说),无非就是数电和模电里面的原理,对于硬件原理来说,更多的是0和1,对于某些人来说,0和1显得那么神秘,但是,它也在很大程度上,限制着人们的思维。 相比之下,软件的东西,就比较灵活了,写程序,一个结果,可以有n种表达方式,不同的表达方式,便有不同的执行效率;这在某种程度上,可以发散人的思维。 虽然走到嵌入式的道路上,但是软件仍然我的优势,在弥补自己的弱势的时候,也不能淡化自己的优势...
阅读全文
摘要:小续 对于数据结构和算法,都只是思想层面的东西,而在实际运用当中,多数是与系统和文件相联系的,所以对于学习数据结构与算法,可以参照操作系统中一些代码的实现,毕竟那都是经过大牛再三修改得出来的精华。 但据我了解,很多人都一味地去“研究”算法本身去了,算法主要是用来解决问题的,当它们遇到问题时,知道怎么解决,但却不知道从哪里入手,这是很悲剧的一件事情,而实际应用中,大多数操作都和文件相当,所以我这里列了两个文件相关的实例,主要是提醒大家不要忘了学算法的目的,希望能帮助到大家文件连接 编程:实现将命令行中指定的第一个文本文件的内容追加到第二个文件之后。 实例解析: 该实例要求从命令行指定两个...
阅读全文
摘要:求π的近似算法 用两种方法编程求π的近似值。 实例解析: 1、用“正多边形逼近”的方法求出π的近似值 我国的祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6位π值的。 利用圆的内接正六边形边长等于半径特点将边数翻番,做出正十二边形,求出边长,重复这个过程,就可获得所需精度的π的近似值。 假设单位圆的内接多边形的边长为2b,边数为i,则边数加倍后新的正多边形的边长为: 周长为2ix (其中i为加倍前的正多边形的边数) 2、利用随机数法求π的近似值 基本思路是:在一个单位边长的正方形中,以边长为半径,以一个顶点为圆心,在正方形上做四分之一圆。随机向正方形内扔点,若落入...
阅读全文
摘要:八皇后问题 求八皇后问题所有的解。 实例解析: 这是一个非常古老的问题:如何在一个8*8的棋盘上无冲突地放置8个皇后棋子,称为八皇后问题。 在国际象棋中,皇后可以沿着任何直线和任何45°斜线移动吃掉别的棋子,因此,任何一个皇后所在的横线上、竖线上和两条对角线上都不能有其他皇后存在。一个完整的、无冲突的八皇后分布称为八皇后问题的一个解。本例求解八皇后的所有解。 很显然,棋盘的每一行都必须有且只能有一个皇后,因此我们从第一行开始,先放下一个皇后(有8个位置可以放置),然后用递归的方式调用函数本身,去放置后面的棋子,直到第八行放完,则表示找到了一个解。 对于每一行,可以放置皇后的位置有8.
阅读全文
摘要:储油问题 一辆重型卡车的油耗是1L/km,载油能力为500L,今欲穿过1000km的沙漠。由于卡车一次过不了沙漠,因此司机必须在沿途设几个储油点。问:如何建立这些储油点,每一个储油点储存多少油才能使卡车以最小油耗通过沙漠? 实例解析: 本例采用倒推法来解题。所谓倒推法,就是在不知初始值的情况下,通过某种递推关系,由最终值推算出初始值的方法。储油问题和猴子吃桃子问题等都是典型的倒退问题。 显然,卡车要通过沙漠,必须在离起点500km处存储500L油,如图17-1所示。 图17-1 储油点及储油量示意图 而要在500km处储油500L,需要卡车从某处(...
阅读全文
摘要:报数游戏 n个小孩围成一圈,从1开始报数,报到k的人退出,其余人重新从1报数,仍是报到k退出,直到圈中只剩m个小孩,问最后剩下的是哪些人? 实例解析: 本题在这里将借助于数组求解,用链表求解的方法放在第17章算法与数据结构实例中。 设计思路:用数组元素模拟小孩。定义一个数组,每个元素存入一个数值作为小孩的编号,然后从第一个元素开始报数,报到k的人将编号清0,表示已退出圈子。在报数的过程中,凡是编号为0的人不再参加报数。当数组所有元素都报数后,重新从数组头开始报数,周而复始,直到圈中只剩m个小孩。#define N 100 int main() {int a[N], n, m, ...
阅读全文
摘要:数组作计数器 一篇文章共有10行,每行最多80字符,编程统计文章中26个英文字母分别出现的次数(不区分大小写)。 实例解析: 文章的内容可以通过键盘输入到一个二维数组中:char s[10][81]; for(i = 0; i = 65 && s[i][j] = 97 && s[i][j] int palindrome(char *p) {int i, n; n = strlen(p); //测试字符串长度 for(i = 0; i int main() {int prime(int); int i, count = 0; for(i = 1...
阅读全文
摘要:国民生产总值多少年翻番? 假设我国工农业总产值以每年9%的速度增长,问多少年翻一番? 实例解析: 翻一番意味着变为原来的两倍,而每年只能增加9%,相当于每年乘上一个1.09。我们可以在程序中不断地乘以1.09,并对此进行计数,若已经达到两倍,则计数器中的值便是需要经过的年数。 这是一个事先无法确定循环次数的循环。#include int main() {int n = 0; float y = 1; //设当年的产值为1,类型不能是int while( y int main() {int n; float y =...
阅读全文
浙公网安备 33010602011771号