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

400-811-9990
手机站
千锋教育

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

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

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

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  技术干货  >  数据结构里面pnext与next有什么区别?

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

来源:千锋教育
发布人:xqq
时间: 2023-10-14 21:09:28

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

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

完全二叉树为什么非常适合顺序存储结构?

2023-10-14

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

2023-10-14

什么叫精益管理?

2023-10-14

最新文章NEW

Java中遍历数据结构Enumeration和Iterator相比有什么不同?

2023-10-14

数组与集合有什么不同?

2023-10-14

ASPICE是什么?

2023-10-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>