数据结构链表里的一个小问题
例如:Lnode *p=head; //head是头指针
Lnode *pre=p->next;
pre=p;
问:我们通常题目里的两个结点:pre=p是什么意思,这里是指把p里的data覆盖pre的data吗? Lnode *p=head; //head是头指针
Lnode *pre=p->next;
这两步相当于
1. p接收head指针
2. 定义p的下一个指针指向pre
你问的第三步相当于
将p到pre之间的指针反转,即由pre指针指向p(只是指针指向,与数据域无关)
*pre=*p;才是你说的值覆盖,对指针来说,加*号是 “取变量(比如pre)存放的值,这个值作为一个地址,取这个地址里存放的值” 就是指针的后移 对于链表型数据结构,数据指针和数据域是不同概念
第一步是指将头指针赋予*p这个所在的数据变量域
第二步p->next() 意思是当前p所指向的下一个地点,然后再赋值
不过我的方向不是C,所以理解可能有所不同
页:
[1]