163585580 发表于 2021-11-26 19:33

数据结构链表里的一个小问题


例如:Lnode *p=head;   //head是头指针
Lnode *pre=p->next;
pre=p;
问:我们通常题目里的两个结点:pre=p是什么意思,这里是指把p里的data覆盖pre的data吗?

小公主々 发表于 2021-11-26 19:47

Lnode *p=head;   //head是头指针
Lnode *pre=p->next;

这两步相当于
1. p接收head指针
2. 定义p的下一个指针指向pre

你问的第三步相当于
将p到pre之间的指针反转,即由pre指针指向p(只是指针指向,与数据域无关)

lostmilkyway 发表于 2021-11-26 21:40

*pre=*p;才是你说的值覆盖,对指针来说,加*号是 “取变量(比如pre)存放的值,这个值作为一个地址,取这个地址里存放的值”

jamesAbc 发表于 2021-11-26 21:43

就是指针的后移

chengxuyuan01 发表于 2021-11-27 09:22

对于链表型数据结构,数据指针和数据域是不同概念
第一步是指将头指针赋予*p这个所在的数据变量域
第二步p->next() 意思是当前p所指向的下一个地点,然后再赋值
不过我的方向不是C,所以理解可能有所不同
页: [1]
查看完整版本: 数据结构链表里的一个小问题