Quote of the day:
A single Nehalem chip today could easily generate four gigabytes per second of new garbage when running a classic enterprise workload.The text pointed by the link is very informative, though. It's about the Azul JVM and how they exploit virtual memory to create a "Pause less" concurrent garbage collector (truly pauseless in the
(
Read more... )
Comments 22
Reply
Reply
Reply
А вот в этом-то, батенька, и засада: совершенно непонятно, как определить, который из указателей на ребёнков на самом деле указывает на родителя, когда мы в очередной раз возвращаемся наверх.
Reply
Reply
Забыл сказать: после всего этого дерево должно остаться в первозданном виде.
Reply
Reply
Reply
Заходим в вершину current, там указатели L, R. У нас есть указатель на то, откуда пришли, P.
temp:=L; L:=R; R:=P; P:=current; current:=temp;
То есть как бы вначале в вершине родитель будет запомнен в правом указателе, а в левом - правый указатель. При этом мы пойдём налево, чего и хотим. Придя в следующий раз в эту вершину, мы снова пойдём по левому указателю, то есть в этот раз направо, и "циклически" передвинем указатели: указатель на родителя будет теперь храниться в левом, указатель на левую вершину в правом. Потом придём в третий раз в эту вершину и опять "циклически" передвинув указатели, они вернуться на свои места, а мы пойдём по тому, что у нас хранилось в левом указателе, то есть к родителю.
Reply
Не понятно только, как избежать тройной обработки узлов. Но может и не надо, повторение -- мать учения.
Reply
Reply
Reply
Leave a comment