千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 数据结构里面pnext与next有什么区别?

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

来源:千锋教育
发布人:xqq
时间: 2023-10-11 07:15:53 1696979753

一、数据结构里面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 }。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT