发布网友 发布时间:2022-04-24 06:02
共2个回答
热心网友 时间:2023-10-05 14:43
文字有点长,但都是我一个一个打出来的,希望你能认真看完!
调用的GetElem函数的参数有链表L、要查找元素的位置i和存储查找结果的变量e
函数开始先把链表头节点的next节点指针拷贝给节点指针p,将p作为循环变量
while (p && j<i) 的意思是如果p的值不为空,即链表L头节点的下一个指向不为空(NULL)的话,就循环
然后指针p不断地把自身的next域拷贝给自己,从而能够遍历整个链表,而且j也不断自增直至到达i的位置
由于while的循环条件有两个,所以在退出循环后,要检查一下是因为哪个条件不满足才退出的
所以用if ( !p || j>i )判断,如果刚开始p的值为空(即!p),或所给的位置i<j=1(说明i是错误位置),都会
执行if里的语句,直接返回错误(return ERROR),程序到此就会结束
如果没有结束,则说明不是因为上述两种原因(即正常循环结束),这时p的数据域(p->data)就是要查找的数据,正常结束函数调用
希望回答对你有帮助!谢谢
【原创答人】
热心网友 时间:2023-10-05 14:43
说实话,这个很简单,你得自己用心看。
while后面的部分p是保证不为空,而J是代表不会超出范围。而IF语句中的!p代表P不能为零,J>I则是查找不能出栈,不能出这个单链表