冒泡排序只交换结点中数据我会 但是我想把整个结点做一个交换 但是有点问题 希望有人能帮我看一下
这是我写的结构体和排序的函数(升序):
head = pMng->pHead;
p = head->pNxt;
for(t=0; t<pMng->nNodeCnt-1; t++)
{
p = head->pNxt;
q = p->pNxt;
while(NULL != p)
{
q = p->pNxt;
if(p->nKey > q->nKey)
{
if(p == head->pNxt)
{
p->pNxt = q->pNxt;
q->pNxt->pPre = p;
p->pPre = q;
q->pNxt = p;
head->pNxt = q;
q->pPre = head;
}
else
{
p->pNxt = q->pNxt;
q->pNxt->pPre = p;
q->pPre = p->pPre;
q->pNxt = p;
p->pPre->pNxt = q;
p->pPre = q;
}
}
else
{
p = p->pNxt;
}
}
根本运行不起来
不知道是不是我的逻辑有问题 我想的就是相邻两个对比大小 大的往后 小的往前 每一次大for循环都完成一个乱序中的大数后沉