首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

各位,在C++单链表冒泡排序上有一个疑问

2012-02-21 
求助各位大虾,在C++单链表冒泡排序上有一个疑问C/C++ codestruct node *bubble(struct node *phead,int le

求助各位大虾,在C++单链表冒泡排序上有一个疑问

C/C++ code
struct node *bubble(struct node *phead,int len){    struct node *ptr,*next;    int temp;         for(int i=0;i<len;i++)    {        ptr=phead;        next=ptr->next;        for(int j=len-i-1;j>0;j--)        {            if(ptr->data > next->data)            {                temp=ptr->data;                ptr->data=next->data;                next->data=temp;            }            ptr=ptr->next;            next=next->next;        }    }         return phead;}


请问为什么交换节点的数据就可以达到冒泡排序的目的呢,我觉得交换了节点数据,但是地址没有变化啊,比如a有3个数据,其中一个数据和B的对调了,那么显示的时候不是会出错吗。
希望有耐心的朋友回答一下这个问题,谢谢

[解决办法]
就像你说的,地址没有发生变化,只是那个地址保存的内容(即数据)发生了变化,以此达到排序的结果

热点排行