这个删除节点的问题
发表在C语言图书答疑 2013-10-17
是否精华
版块置顶:
void Delete(struct Student*pHead,int ilndent)
{        int i;       
         struct Student*pTemp;       
         struct Student*pPre;        
         PTemp=pHead;    
         pPre=pTemp;       
 printf("delete NO%d member---\n",ilndex);      
 for(i=1;i<ilndex;i++)       
 {             pPre=pTemp;           
               pTemp=pTemp->pNext;       
 }     
               pPre->pNext=pTemp->pNext;    
               free(pTemp);     
               iCount--;
}
 这里面刚开始的         PTemp=pHead;    
                         pPre=pTemp;  这两个语句怎么理解啊?
还有循环里面的 pPre=pTemp;           
               pTemp=pTemp->pNext; 这俩个语句怎么理解?
要详细一点哦!
分享到:
精彩评论 1
cui_mrkj
学分:0 LV1
TA的每日心情
?
2020-08-20 13:57:19
2013-10-20
沙发
PTemp=pHead  //PTemp是一个临时指针,代替头指针向后遍历链表,作用是保护头指针。
如果直接用头指针向后遍历链表,则头指针不再保存链表头,该链表无法再使用。

循环里的pPre=pTemp;是用一个指针pPre跟踪pTemp,指向pTemp前一个节点,
当释放pTemp节点时,先让pTemp的前一个节点和后面的连接起来,再释放pTemp。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照