数据结构常见问题和算法
脱掉三千烦恼丝
ucos,linux,stm32,51
展开
-
结构体指针在函数中改变,但是函数运行完毕后回到主函数发现他没变(改变的是形参结构体指针)
如果你用的是结构体指针,是否遇到了在函数中改变他,但是函数运行完毕后回到主函数发现他没变的问题?本文给你讲明白函数没有改变结构体的值?void bbb(struct node *p){ }对p操作了半天,回主函数一看没反应?先别急。先举个很简单的例子,我们都知道,在函数中无论如何你改变形参,主函数里的实参都没反应,下边的a就是一个例子。这个函数调用之后,主函数中不会有反应。我们就会用指向他的指针,也就是他的地址来进行传参,这样就可以直接修改地址的值,相当于从娘胎里就给你变形。void aa原创 2021-11-09 22:27:00 · 4824 阅读 · 0 评论 -
双向链表的创建以及增删改查
实现起来其实不难,于是我把代码做了优化,模仿了stm32的库函数哈哈哈,便于理解和修改。不足之处请指出#include "stdio.h"#include "stdlib.h"//宏定义#define ElementType int#define uint unsigned intElementType pa[6] = {1, 2, 2, 3, 5, 7};ElementType pb[5] = {2, 3, 4, 6, 8};ElementType *pc;uint MaxLengt原创 2021-09-26 22:58:52 · 1479 阅读 · 0 评论 -
KMP字符匹配算法
比如主字符串A:ABACCCC和字符串B:ABADD要在主字符串A里查找有没有字符串B,先比较相同的公共字符串,ABA就是公共字符串,因为A和B的这三个一摸一样,然后A在开头和结尾一样,所以A就是公共前后缀。k就是公共前后缀的长度,在这里是1,就是A,所以就是从k+1开始比较,也就是从A的下标1加上1,也就是2开始比较,也就是B。也就是:ABACCCC__ABADD__12345...原创 2021-09-13 21:45:23 · 1292 阅读 · 0 评论