一个按姓名的选择排序,寻求解决一下
/*ElemType tmp = p->data;
p->data = pMax->data;
pMax->data = tmp;
*/
倒数第四行注释部分如何不用data的交换,用指针的指向操作实现
void SortName(DuLinkList* plist)
{
assert(plist != NULL);
DuLNode* p = plist->head->next; // first;
while (p->next != plist->head)
{
DuLNode* pMax = p;
DuLNode* pos = p->next;
while (pos != plist->head)
{
if (strcmp(pMax->data.a_name, pos->data.a_name) > 0)
{
pMax = pos;
}
pos = pos->next;
}
if (p != pMax)
{
/*ElemType tmp = p->data;
p->data = pMax->data;
pMax->data = tmp;
*/
}
p = p->next;
}
}
需要改进 ,更快,冗余少
无法解答
想寻求解决代码