全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

数据结构里面pnext与next有什么区别?

发布时间:2023-10-11 07:15:53
发布人:xqq

一、数据结构里面pnext与next的区别

p 是一个指向某类型结构的指针;

p->next 是 p 所指向的结构的 next 成员;

p = p->next 是把 p->next 的值赋给 p。

如果这两句语句中的 p 变量是同一个 p 的话,那么 p->next 的数据类型一定是一个指向结构的指针,而且所指向的结构的类型与 p->next 所在结构的类型相同。

#include   //链表的结构及其指针 struct stru_num {     int num;     struct stru_num *next;//结构本身不能含有同类型的结构,但可以含有指向同类型的指针 } *p;   int main(void) {    struct stru_num list[10];//链表     int index;           p = list;//初始化指针     for(index = 0;index < 10;index++) //赋值     {         p->next = p + 1;         p->num = index;         p = p->next;//与 p++ 效果等同     }     (p – 1)->next = NULL;//末元素指向空指针,           //输入除首元素的其他元素     p = list;     for(index = 0;index < 9;index++)         printf(“%d”,(p[index].next)->num);           return 0; }

延伸阅读:

二、KMP算法

相比BF算法的改进:每当一趟匹配过程中出现字符比较不等时,无需回溯i指针(即无需将i指针完全退回至i-j+1),而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远的一段距离后,继续进行比较。

需要解决的问题:当主串中的第i个字符与模式中第j个字符比较不相等时,主串中第i个字符(i指针不回溯)应与模式中哪个字符再比较?—-假设从主串中第i个字符与模式中的第k个字符再进行比较

它是则呢样来消除回溯的呢?就是因为它提取并运用了加速匹配的信息!

  这种信息就是对于每模式串 t 的每个元素 t j,都存在一个实数 k ,使得模式串 t 开头的 k 个字符(t 0 t 1…t k-1)依次与 t j 前面的 k(t j-k t j-k+1…t j-1,这里名列前茅个字符 t j-k 非常多从 t 1 开始,所以 k < j)个字符相同。如果这样的 k 有多个,则取最大的一个。模式串 t 中每个位置 j 的字符都有这种信息,采用 next 数组表示,即 next[ j ]=MAX{ k }。

#it技术干货

相关文章

什么是单支树?

什么是单支树?

2023-10-11
二叉树非递归遍历栈中存的是什么?

二叉树非递归遍历栈中存的是什么?

2023-10-11
为什么说int就是用来表达寄存器的?

为什么说int就是用来表达寄存器的?

2023-10-11
侵入式链表什么意思?

侵入式链表什么意思?

2023-10-11

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取