随笔分类 -  编程技巧资料

各种编程技巧与经典资料
单链表的运算
摘要:1、建立单链表 假设线性表中结点的数据类型是字符,我们逐个输入这些字符型的结点,并以换行符'\n'为输入条件结束标志符。动态地建立单链表的常用方法有如下两种:(1) 头插法建表① 算法思路 从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止。 具体方法【参见动画演示】注意: 该方法生成的链表的结点次序与输入顺序相反。② 具体算法实现 1 LinkList CreatListF(void) 2 {//返回单链表的头指针 3 ... 阅读全文
posted @ 2011-12-07 00:08 风行雪舞 阅读(239) 评论(0) 推荐(0)
循环链表(Circular Linked List)
摘要:循环链表是一种首尾相接的链表。 1、循环链表(1)单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。 (2)多重链的循环链表——将表中结点链在多个环上。 2、带头结点的单循环链表 注意: 判断空链表的条件是head==head->next; 3、仅设尾指针的单循环链表 用尾指针rear表示的单循环链表对开始结点a1和终端结点an查找时间都是O(1)。而表的操作常常是在表的首尾位置上进行,因此,实用中多采用尾指针表示单循环链表。带尾指针的单循环链表可见下图。 注意: 判断空链表... 阅读全文
posted @ 2011-12-07 00:07 风行雪舞 阅读(807) 评论(0) 推荐(0)
指针函数和函数指针有什么区别
摘要:1,这两个概念都是简称,指针函数是指带指针的函数,即本质是一个函数。我们知道函数都又返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。其定义格式如下所示: 返回类型标识符 *返回名称(形式参数表) { 函数体 } 返 回类型可以是任何基本类型和复合类型。返回指针的函数的用途十分广泛。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址,该 地址相当于一个指针。比如函数返回一个整型值,实际上也相当于返回一个指针变量的值,不过这时的变量是函数本身而已,而整个函数相当于一个“变量”。例如 下面一个返回指针函数的例子: 1 #include 2 ... 阅读全文
posted @ 2011-12-06 23:59 风行雪舞 阅读(485) 评论(0) 推荐(0)
指针津逮--------浅谈从指针到“ref”
摘要:大凡刚刚接触C语言的人,最头疼的就是指针和链表了,别的变量里存放的都是“正而八经”的值,这指针呢,偏偏存的就是一地址,用起来还有声明和定义之别, 声明是有“*”号的,赋其地址值,定义时是无“*”号方可赋地址值。由于可以直接给其赋内存地址,初学者稍有不慎,这指针便如群魔乱舞,使编译者错误迭 出。这时初学者不禁扼腕兴叹,要是没有指针多好!指针有什么用?然而指针被喻为C语言的精华,自有其必然之处,例如:1 void fun(int a)2 {3 a=20;4 }5 void main()6 {7 int a = 10;8 fun(a)9 }想让a变成20,若把a作为实参直接传进去经... 阅读全文
posted @ 2011-12-06 23:58 风行雪舞 阅读(388) 评论(0) 推荐(0)
strstr函数
摘要:strstr函数2008年08月02日 星期六 10:30函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例:#include <stdio.h> #include <string.h>int main(void) { char string[10]; char *str1 = "abcdefghi 阅读全文
posted @ 2011-12-06 23:49 风行雪舞 阅读(227) 评论(0) 推荐(0)
每个程序员都应该学习使用Python或Ruby
摘要:如果你是个学生,你应该会C,C++和 Java。还会一些VB,或C#/.NET。多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaScript知识。总体上说,我们 很难发现会有学生显露出掌握超出这几种语言范围外的语言的才能。这真让人遗憾,因为还有很多种编程语言,它们能让你成为一个更好的程序员。在这篇文章里,我将会告诉你,为什么你一定要学习Python或Ruby语言。跟C/C++/Java相比 — Python/Ruby能让你用少的多的多的代码写出相同的程序。有人计算过,Python或Ruby写出的程序的代码行数只相当于相对应的Java代码的行数的五分之一。如果没有绝对的必要 阅读全文
posted @ 2011-12-06 23:25 风行雪舞 阅读(252) 评论(0) 推荐(0)
做一个懒惰的程序员
摘要:本文写给所有可爱的程序员,(我)你们都是一群可爱的,用双手建造世界的思想家。从今天起,我要做一个懒惰的程序员。第一 拒绝鼠标从今天,我将拒绝鼠标。鼠标,是鼠标手的 根源,无数的程序员都被鼠标手所困扰,这似乎已经成为了程序人员的专利。我们养成了一个一个的“恶习”,比如,滥用鼠标右键刷新,看文档的时候,喜欢用鼠 标来标记正在阅读的段落等等。这些非常规的使用使我们的手得了严重的疾病,我不知道,这样继续下去,当我们牙齿掉光的时候,是否还有能力抚摸妻子动人的面 庞。所以,我要从以下几个方面拒绝鼠标的诱惑:(虽然某些时候它真的很方便)1. 我要开始使用Emacs或是VimEmacs和Vim就是程序员的倚天 阅读全文
posted @ 2011-12-06 23:24 风行雪舞 阅读(286) 评论(0) 推荐(0)
Makefile2
摘要:四、嵌套执行make 在一些大的工程中,我们会把我们不同模块或是不同功能的源文件放在不同的目录中,我们可以在每个目录中都书写一个该目录的Makefile,这有利于让我们的Makefile变得更加地简洁,而不至于把所有的东西全部写在一个Makefile中,这样会很难维护我们的Makefile,这个技术对于我们模块编译和分段编译有着非常大的好处。 例如,我们有一个子目录叫subdir,这个目录下有个Makefile文件,来指明了这个目录下文件的编译规则。那么我们总控的Makefile可以这样书写: subsystem: cdsubdir&&$(MAKE) 其等价于: subsyst 阅读全文
posted @ 2011-12-06 23:15 风行雪舞 阅读(395) 评论(0) 推荐(0)
make的命令行选项
摘要:-b -m 忽略,提供其它版本make兼容性。 -B --always-make 强制重建所有规则的目标,不根据规则的依赖描述决定是否重建目标文件。 -C DIR --directory=DIR 在读取Makefile之前,进入目录“DIR”,就是切换工作目录到“DIR”之后执行make。存在多个“-C”选项时,make的最终工作目录是第一个目录的相对路径。如:“make –C / -C etc”等价于“make –C /etc”。一般此选项被用在递归地make调用中。 -d make在执行过程中打印出所有的调试信息。包括:make认为那些文件需要重建;那些文件需要比较它们... 阅读全文
posted @ 2011-12-06 23:14 风行雪舞 阅读(626) 评论(0) 推荐(0)
make的常见错误信息
摘要:本文对make执行时可能出现常见错误进行汇总、分析,并给出修正的可能方法。 make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。 错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是当Makefile本身存在语法错误无法被make解析并执行时,前缀包含了makefile文件名和出现错误的行号。 在下述的错误列表中,省略了普通前缀: [FOO] Error NN [FOO] signal description 这类错误并不是make的真正错误。它表示... 阅读全文
posted @ 2011-12-06 23:10 风行雪舞 阅读(1511) 评论(0) 推荐(0)
如何阅读代码?
摘要:原文:Why I Love Reading Other People’s Code And You Should Too by Alan Skorkin 翻译:Yurii我恨读代码我发现,许多程序员都讨厌读代码——拜托别掩饰了,承认吧。差不多每个人都喜欢写代码——写代码乐在其中。可是,读代码真是不容易,而且还很烦人,又无可逃避,其他人写的代码总是很垃圾(即便不说,我们心里也这么想的)。即使自己写的代码,过几个小时再看也有点垃圾,过的时间再久点,就更垃圾了。那么,还有什么理由去看别人的蹩脚代码,而是不自己写几手漂亮的?能不能暂且忽略这个问题,花上几个小时看别人的代码,再回头来看自己的是不是还那么 阅读全文
posted @ 2011-12-06 23:09 风行雪舞 阅读(282) 评论(0) 推荐(0)
第一个Helloworld的Makefile
摘要: 阅读全文
posted @ 2011-12-06 23:09 风行雪舞 阅读(189) 评论(0) 推荐(0)
在规则中使用通配符
摘要:在规则中使用通配符 如果我们想定义一系列比较类似的文件,我们很自然地就想起使用通配符。make支持三各通配符:“*”,“?”和“[...]”。这是和Unix的B-Shell是相同的。 波浪号(“~”)字符在文件名中也有比较特殊的用途。如果是“~/test”,这就表示当前用户的$HOME目录下的test目录。而“~hchen/test”则表示用户hchen的宿主目录下的test目录。(这些都是Unix下的小知识了,make也支持)而在Windows或是MS-DOS下,用户没有宿主目录,那么波浪号所指的目录则根据环境变量“HOME”而定。 通配符代替了你一系列的文件,如“*.c”表示所以后缀为c的 阅读全文
posted @ 2011-12-06 23:08 风行雪舞 阅读(404) 评论(0) 推荐(0)
后缀规则(一种古老的隐含规则)以及隐含规格搜索法
摘要:一、后缀规则 后缀规则是一种古老定义隐含规则的方式,在新版本的make中使用模式规则作为对它的替代,模式规则相比后缀规则更加清晰明了。在现在版本中保留它的原因是为了能够兼容旧的makefile文件。后缀规则有两种类型:“双后缀”和“单后缀”。 双后缀规则定义一对后缀:目标文件的后缀和依赖目标的后缀。它匹配所有后缀为目标后缀的文件。对于一个匹配的目标文件,它的依赖文件这样形成:将匹配的目标文件名中的后缀替换为依赖文件的后缀得到。如:一个描述目标和依赖后缀的“.o”和“.c”的规则就等价于模式规则“%o : %c”。 单后缀规则只定义一个后缀:此后缀是源文件名的后缀。它可以匹配任何文件,其依赖文件 阅读全文
posted @ 2011-12-06 23:07 风行雪舞 阅读(685) 评论(0) 推荐(0)
stdio 与 STDIN_FILENO
摘要:1、stdio2、STDIN_FILENO数据类型不一致:stdin类型为 FILE* ,指向一个结构体指针;属于标准I/O,由标准C库实现;是高级的输入函数,定义在标准库<stdio.h>。STDIN_FILENO类型为 int;是0号文件描述符(操作系统一级提供的文件API都是以文件描述符来表示文件,文件描述符是linux内核专有概念,对文件描述符的操作属于系统调用。STDIN_FILENO就是标准输入设备(一般是键盘)的文件描述符)是非负整数,打开文件句柄;属于没有buffer的I/O,能直接调用系统调用,定义/usr/include/unistd.h。代码:/* Stand 阅读全文
posted @ 2011-12-06 23:01 风行雪舞 阅读(470) 评论(0) 推荐(0)

无觅相关文章插件,快速提升流量