<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=427130&amp;view=findpost&amp;p=3865099</guid>
        <pubDate>Tue, 03 May 2022 10:04:18 +0000</pubDate>
        <title>вывести нумера узлов при печати бинарного tree search</title>
        <link>https://forum.sources.ru/index.php?showtopic=427130&amp;view=findpost&amp;p=3865099</link>
        <description><![CDATA[FasterHarder: т е все копии функции root_left_right разделяют один и тот же указатель - это красиво, и почему сразу до этого не догадался  :unsure: <br>в очередной раз рекурсия меня поражает емкостью своего решения + невозможно найти в IT более сложную вещь в такой ЕМКОЙ форме, имхо)<br><br>зы: помню, увидел рекурсивную процедуру переложения колец при решении задач &quot;Ханойские башни&quot;, там 5-7 строк кода, наверное, часов 5-6 смотрел, думал, курил, смотрел в окно, что-то рисовал, так вроде и не понял на 100%, но зазубрил хорошо  8-)]]></description>
        <author>FasterHarder</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=427130&amp;view=findpost&amp;p=3865096</guid>
        <pubDate>Tue, 03 May 2022 08:54:31 +0000</pubDate>
        <title>вывести нумера узлов при печати бинарного tree search</title>
        <link>https://forum.sources.ru/index.php?showtopic=427130&amp;view=findpost&amp;p=3865096</link>
        <description><![CDATA[FasterHarder: Всем хай&#33; Сходу к делу&#33;<br>
<br>
Хапнул проблему в какой-то простой ситуации ( а может она и непростая ).<br>
Есть обыкновенное описание узла бинарки:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">typedef struct Node</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int key;</div><div class="code_line">&nbsp;&nbsp; &nbsp;struct Node* left;</div><div class="code_line">&nbsp;&nbsp; &nbsp;struct Node* right;</div><div class="code_line">} Node;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
И есть рекурсивная функция обхода ( корень, левое поддерево, правое поддерево ). Именно такой обход ( но это, думаю не важно ).<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void root_left_right( const Node* const root )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// static int number = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if( root )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;printf( &quot;%d\t%d\n&quot;, number, root -&#62; key );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;root_left_right( root -&#62; left );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;root_left_right( root -&#62; right );</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
И надо добавить сквозную нумерацию печатаемых узлов дерева. Например:<br>
1 50<br>
2 30<br>
3 -17<br>
4 100<br>
...<br>
<br>
но НЕ получается сделать нормально эту нумерацию, уже перепробовал 2-3 способа. Ближе всех был вариант со static, но при повторном вызове печати нумерация продолжалась, разумеется, а не сбрасывалась опять на 1.<br>
<br>
уровни без проблем получается выводить ( через параметры ), а здесь что-то не получается  :wall: <br>
Глобальные переменные использовать нельзя.<br>
<br>
Подскажите как быть-то, буду оч. признателен  ;) <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2022-05-03T09:52:47+00:00">03.05.22, 09:52</time></span></span><br>
победил так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;void root_left_right( int* number, const Node* const root )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// static int number = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if( root )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;printf( &quot;%d\t%d\n&quot;, ( *number )++, root -&#62; key );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;root_left_right( number, root -&#62; left );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;root_left_right( number, root -&#62; right );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div><br>
<br>
подсмотрел этот подход на примере подсчета количества листьев процедуры на Паскаль.<br>
надо же, работает, как надо, пойду думать, почему это работает...<br>
а в целом это, ИМХО, оч.интересное применение указателя)]]></description>
        <author>FasterHarder</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	