0
노드 구조체 (나이) 내에서 int 값으로 DLL을 재정렬하려고합니다. 그것은 int에 직접 액세스 할 때 작동하지만 전체 노드를 바꿔서리스트가 재정리 될 때 구조체의 모든 변수를 바꿀 필요가 없습니다.이중 연결 목록 노드 스와핑 문제
void DLL::ReOrg(node* head, int DLL_Size)
{
node* temp = head;
int holder;
for(int j = 0; j < DLL_Size; j++)
{
while(temp != NULL)
{
if (temp->next != NULL && (temp->age < temp->next->age))
{
holder = temp->age;
temp->age = temp->next->age;
temp->next->age = holder;
}
else
temp = temp->next;//increment node
}
temp = head;
}
}
이 작동하지만 내가 좋아하는 뭔가를하려고하면
는node* holder;
...
holder = temp;
temp = temp->next;
temp->next = holder;
내 프로그램을 컴파일하고 빈 화면이 실행됩니다. 모든 지침을 부탁드립니다. 나는 모든 변수를 바꾸는 것이 더 쉬울 것이라고 생각한다. (많지는 않다.)하지만 코드를 더 깨끗하게 만들고 싶었다. 감사.
을 . 나는 당신이 말한 것처럼 prev-> next & next-> next-> prev를 추가하려고 시도하고 있지만 여전히 비어 있습니다. 내가 링크드리스트를 싫어한다. – GeorgeCostanza
@GeorgeCostanza 코드를 다시 연결하는 몇 가지 예를 추가했다. –
나는 거의 다 왔지만, 어떤 이유로 ReOrg 중에 노드가 없어지고있다. 무슨 일이 일어나고 있는지 보여줄 그림이 있습니다. http://i.imgur.com/U3BGstr.png 시간을내어 주셔서 감사합니다. 머리와 꼬리 포인터가 첫 번째 노드와 마지막 노드를 가리키고 있습니다. head-> prev 및 tail-next는 NULL입니다. – GeorgeCostanza