摘要: 这篇博客提供一种理解KMP算法中求解next数组的思路,若是从头开始学习KMP算法,请移步这篇博客阅,作者讲解的十分详细,我本人也是从他的博客开始回顾KMP算法,本篇博客也是基于这篇博客来写的。 请阅读到以下位置后,若是无法理解P[k] != P[j]这部分逻辑,希望可以尝试用本篇博客的思路来理解; 阅读全文
posted @ 2020-07-30 18:22 挠到头秃 阅读(1987) 评论(0) 推荐(3) 编辑
摘要: 自我们开始学习C语言中的指针,老师就说返回函数局部变量的地址是没有意义的,因为函数调用完毕,系统回收函数中用到各种资源,函数栈顶指针向高位地址移动。指针指向的内容已经被释放,返回的指针会指向不可预料的内容。 我们可以从C程序的内存布局讲起(详细内容,请查看超链接内容,本片文章只会讲解与本篇文章相关的 阅读全文
posted @ 2020-05-03 22:59 挠到头秃 阅读(936) 评论(0) 推荐(0) 编辑
摘要: 近期在学习Linux C编程,在使用 localtime() 函数时遇到了比较奇怪的问题,我本想对比文件的最近修改时间和系统当前时间年份是否一致,按说定义两个struct tm*类型指针,再获取到两个struct tm *类型的指针变量后进行比较便可,但是无奈这两个结构体指向的tm_year成员值是 阅读全文
posted @ 2020-05-03 16:57 挠到头秃 阅读(609) 评论(0) 推荐(0) 编辑
摘要: 如何理解以下两句 Bash 脚本?执行结果都是一样的,输出了 date 命令输出中的第二个域,为三月份 echo "`date | awk '{print \$2}'`" Mar echo "`date | awk '{print $2}'`" Mar 对于以下脚本,在 " " 中保留了 ` ` 和 阅读全文
posted @ 2020-03-20 17:35 挠到头秃 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 这几天在写Matlab程序时,对元胞数组使用了 {} 和 () 运算符,过程总是出现各种问题,简单记录一下。 先来看一下官方解释:您可以使用圆括号 () 对元胞数组进行索引,使用花括号 {} 对元胞的内容进行索引。 换句话说使用 () 得到的结果是元胞集,使用 {} 的到的是元胞中存的数据。 宏观理 阅读全文
posted @ 2020-02-19 01:57 挠到头秃 阅读(1703) 评论(0) 推荐(0) 编辑
摘要: 这次实现没有涉及进程的blocked状态! 阅读全文
posted @ 2019-03-30 20:10 挠到头秃 阅读(978) 评论(0) 推荐(0) 编辑
摘要: 编程实现:要传输一些数据(比如英文单词),设计一个利用哈夫曼算法的编码系统,为这些单词编码,并在接收端进行译码。基本要求: (1)将需要传输的数据存放在数据文件data.txt 中。 (2)读入数据文件并为其编码,将编码后的内容存入文件code.txt中。 (3)读入code.txt,译码。并将译码 阅读全文
posted @ 2018-12-01 14:57 挠到头秃 阅读(973) 评论(0) 推荐(1) 编辑
摘要: 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路 阅读全文
posted @ 2018-11-01 00:41 挠到头秃 阅读(2278) 评论(0) 推荐(0) 编辑
摘要: 问题和上一篇博客一样,只是在表达式中加入了括号。 思路和上一篇博客的差异不大,只是在处理左右括号的优先级时需要注意一下: 1.左括号的优先级仅高于#; 2.但是遇见左括号时,不用和OPTR栈顶元素进行优先级比较,直接强制进OPTR栈; 3.遇到右括号,退OVS栈两次,退OPTR栈一次,进行相应的运算 阅读全文
posted @ 2018-10-16 15:23 挠到头秃 阅读(1549) 评论(0) 推荐(0) 编辑
摘要: 对于自然数的表达式求值,操作有加、减、乘、除和幂运算,分别用+,-, *, /,^来表示,为方便运算,加入#运算符,其运算优先级最低,由于运算符优先级不一样,可以利用栈实现此操作。 算法思想 (1)规定运算符的优先级表 (2)设置两个栈:OVS(运算数栈)和OPTR(运算符栈),为了操作方便可以先在 阅读全文
posted @ 2018-10-14 01:31 挠到头秃 阅读(783) 评论(0) 推荐(0) 编辑