Что будет в связанном списке? - PullRequest
0 голосов
/ 01 октября 2019

Предположим, что x является узлом связанного списка. Каковы эффекты следующих фрагментов кода?

Опишите или нарисуйте, что происходит с x?

  1. t.next = x.next; x.next = t;

  2. x.next = x.next.next;

  3. x.next = t; t.next = x.next;

1 Ответ

0 голосов
/ 01 октября 2019

Я могу 'понять суть вашего вопроса, но, похоже, вы спрашиваете о назначениях java и о том, на что они влияют и как. Ответ таков: это зависит от того, в каком порядке вы написали свои фрагменты. Не путайтепри инициализации классов экземпляры классов являются типами данных, так же как и целые числа. Когда вы читаете их значение, вы получаете значение, которое они имели на момент назначения.

В первой ситуации t.nextбудет указывать на узел x.next, а x.next будет указывать на узел t. Конечно, t.next не будет затронут, так как значение x.next изменяется после назначения и будет продолжать указывать, где x.nextуказывал на начало. Однако в третьей ситуации это повлияет на t.next и будет указывать на себя, поскольку назначение происходит после инициализации x.next

Второй пример очевиден; выпрактически вынуть указатель и установить его в другом месте.

...