算法
文章平均质量分 70
cherish_xmm
这个作者很懒,什么都没留下…
展开
-
递归法实现对单链表的基本操作
为了熟悉递归的思想,我采用递归的方式实现单向链表的基本操作。单向的链表是C语言课程中接触到的中比较复杂的数据结构,但是其确实是其他数据结构的基础,在一般情况下都是采用迭代的形式实现,迭代的形式相比递归要节省时间和空间,但是代码相对来说要复杂,递归往往只是简单的几句代码,原创 2014-09-26 23:39:03 · 3062 阅读 · 0 评论 -
C语言文件操作函数大全(课时7)
C语言文件操作函数大全clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf转载 2015-02-24 13:21:36 · 366 阅读 · 0 评论 -
C语言:字符串的初始化辨析
以下是常用的四种字符串初始化方法: (一)char str[10] = "HELLO";结尾会被编译器自动加上结尾符'/0',编译的时候可以看到它最后是'',ASC码值是0;"HELLO"只有5个字符,加上编译器自动添加的'/0',也就是会初始化数组的前6个元素,剩下有元素会被全部初始化为'/0',这个要注意哦(二)char str[]原创 2015-01-29 10:30:10 · 521 阅读 · 0 评论 -
C语言:复杂表达式的执行过程(课时1)
近日在CSDN上闲逛的时候,注意到一个帖子: ((*strDest++=*strSrc++)!='\0'); 哪儿前辈可以解释下里面具体执行的步骤呢? 对于这样的表达式,我们通常会有这样三种看法: 1.这种写法不但没有错误(当然也没有BUG),而且写法紧凑。 2.这种写法虽然没有错误,但是不够直观,理解起来有点麻烦,可能还会导致理解错误。 3.这种转载 2015-02-22 16:15:29 · 578 阅读 · 0 评论 -
C语言:常用算法
一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a[100]存放产生的确100个随机整数,数组x[1转载 2015-02-23 22:07:23 · 359 阅读 · 0 评论 -
C语言:回车和换行的区别
/r /n区别/n 换行 将光标移动到下一行第一格 相当于平时用的回车 /r 回车 将光标移动到当前行第一格'/r'是回车,'/n'是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。下面转一篇文章。 回车和换行 今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了。 在计转载 2015-02-22 21:27:47 · 2590 阅读 · 2 评论 -
数组应用--常用排序(课时2)
1.选择法排序(升序) 基本思想: 1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置; 2)除第1 个数外,其余n-1个数中选最小的数,与第2个数交换位置; 3)依次类推,选择了n-1次后,这个数列已按升序排列。程序代码如下: void main() { int i,j,imin,s,a[10]; printf("/n inp原创 2015-02-24 13:08:57 · 522 阅读 · 0 评论 -
C语言:函数二维数组传递方法
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:方法一, 形参给出第二维的长度。例如:#include void func(int n, char str[ ][5] ){ int i; for(i = 0; i printf("/nstr[%d] = %s/n", i, str[i]);}void main(){原创 2015-02-22 16:10:01 · 544 阅读 · 0 评论 -
C++:引用与指针的区别(课时6)
温故而知新,指针和引用的概念,大学时都已熟知,实际用的时候往往又有些疑惑,故深入探究一下。从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的转载 2015-02-24 13:18:56 · 272 阅读 · 0 评论 -
贪心算法的思想
贪心算法思想:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。原创 2014-11-23 22:54:27 · 550 阅读 · 0 评论 -
在字符串中删除指定字符
在字符串中删除指定的字符 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串变成”Thy r stdnts.”。 (1)思路建立一个256位长度bit数组,存储第二个字符串的每个字符,遍历第一个字符串的时候,根据hash映射,判断该位是否需要删除。重要的一转载 2014-10-18 23:35:37 · 1292 阅读 · 0 评论 -
二叉树遍历输出的递归和非递归实现
根据二叉树遍历操作的递归定义,可以很容易的写出在二叉树原创 2014-10-25 21:24:00 · 608 阅读 · 0 评论 -
贪心算法思想
贪心算法思想:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。原创 2014-11-23 22:55:26 · 289 阅读 · 0 评论