今天自己将职工管理系统用链表的形式又重新写了一遍,增删改查的功都能实现,但是在对职工薪资进行排序的时候则遇到了问题,第一次碰到在链表里进行排序,想了很久也没想出合适的方法,之后看了之前所用过的冒泡排序,发现完全可以用类似的方法来对薪资进行排序,下面则是链表排序的具体代码:
p temp7, max, n, m;
int i = 0;
n = temp;
m = max = temp->next;
while (n->next != temp) //大循环,控制循环次数//
{
temp7 = temp->next; //temp为下面找最大值的前节点所用,赋初值//
for (m = n->next; m != temp; m = m->next) //小循环,依次找出当前最大值//
{
if (max->salary > m->salary)
{
max = m;
}
}
while(temp7->next != max)
{
temp7 = temp7->next;
}
temp7->next = max->next;
max->next = temp->next;
temp->next = max;
if(i == 0)
{
n = max;
}
max = n->next;
i++;
}