我對雙向鏈表的氣泡排序功能有問題。 它正在工作,當我以單向鏈接的方式排序節點(只有 - >下一個),但我不能使它與 - > prev指針一起工作。 這裏是我使用的代碼:泡沫分類雙向鏈表
void sort(int count)
{
struct data *tmp,*current,*nextone;
int i,j;
for(i=0;i<count;i++)
{
current = first;
for(j=0;j<count-1-i;j++)
{
if(current->number > current->next->number)
{
nextone = current->next;
current->next = nextone->next;
nextone->next = current;
if(current == first)
{
first = nextone;
current = nextone;
}
else
{
current = nextone;
tmp->next = nextone;
}
}
tmp = current;
current = current->next;
}
}
}
這是我使用的結構(與列表的第一個和最後一個元素的全局變量):
struct data
{
int id;
char name[20];
int number;
struct data *next;
struct data *prev;
};
struct data *first = NULL;
struct data *last = NULL;
發佈使用雙鏈表節點移動時給您帶來麻煩的代碼。 – Buddha