| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1124 人关注过本帖
标题:链表删除节点时,我老是算不对迭代
取消只看楼主 加入收藏
ycyu1455
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2016-4-3
结帖率:33.33%
收藏
 问题点数:0 回复次数:1 
链表删除节点时,我老是算不对迭代
void Delete(struct Student* pHead,int iIndex)
{
    int i;                          
    struct Student* pTemp;               
    struct Student* pPre;                    
    pTemp=pHead;                        
    pPre=pTemp;                    

    printf("----delete NO%d member----\n",iIndex);            
    for(i=1;i<iIndex;i++)                        
    {
        pPre=pTemp;                //循环一:pRre与pTemp同样是头指针,也能指向首节点,循环二:pPre将获取pTemp第二节点首地址

        pTemp=pTemp->pNext;        //循环一:pTemp获取第二节点首地址,循环二:pTemp获取第三节点首地址,此时结束for
    }
    pPre->pNext=pTemp->pNext;          //此时pPre是第二节点,而pPre->pNext就是第二节点的指针变量获取第四节点的首地址,所以我理解是被删除的是第三节点,但是实际为什么是第二个节点被删除了呢

    free(pTemp);                           
    iCount--;                        
}

[此贴子已经被作者于2016-7-14 21:07编辑过]

搜索更多相关主题的帖子: member 
2016-07-14 20:30
ycyu1455
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2016-4-3
收藏
得分:0 
是我马虎了,我现在有点伸手党倾向了,for(i=1;i<iIndex;i++) 只会执行一次,所以不会有第二次执行,因此pPre还是头指针,当结束for时,pPre->pNext就是给第一个节点的指针变量赋值
2016-07-14 21:40
快速回复:链表删除节点时,我老是算不对迭代
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016952 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved