Ryan_Jielong 2019-12-09 21:26 采纳率: 0%
浏览 160

请问一下,为什么我这个排序函数会出现链表末端的数据丢失?

void Linklist::rank_in_Chinese()
{
    Node *pre, *beh,*pTemp;
    pTemp = new Node;
    pre = pHead;           //外循环指针初定义
    beh = pre;             //内循环指针初定义
    while (pre->pNext != NULL)
    {

        while (beh->pNext != NULL)
        {

            if (beh->Chinese <= beh->pNext->Chinese)
            {
                switch_info(pTemp, beh);
                switch_info(beh, beh->pNext);
                switch_info(beh->pNext, pTemp);
            }   
            beh = beh->pNext;
        }
        pre = pre->pNext;
        beh = pre;
    }
    cout << "排序成功!" << endl;
    system("pause");
}

在进行调试后发现链表末端储存的值总是被替换成NULL指针里面的值,这是为什么阿

  • 写回答

1条回答 默认 最新

  • cyzzing 2019-12-09 22:37
    关注

    每次大循环结束后
    pre = pre->pNext;
    beh = pre->pNext;

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?