<?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=298897&amp;view=findpost&amp;p=2550113</guid>
        <pubDate>Mon, 29 Mar 2010 03:55:34 +0000</pubDate>
        <title>С. Работа со списками</title>
        <link>https://forum.sources.ru/index.php?showtopic=298897&amp;view=findpost&amp;p=2550113</link>
        <description><![CDATA[MichSpar: <div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Пользуйся (хотя я сомневаюсь, что ты тут появишься ещё :D ):</div><div class="body"><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">#include &#60;stdlib.h&#62;</div><div class="code_line">#include &#60;stdio.h&#62;</div><div class="code_line">#include &#60;string.h&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">typedef struct</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;char ch;</div><div class="code_line">&nbsp;&nbsp; &nbsp;void * next;</div><div class="code_line">} l_list;</div><div class="code_line">&nbsp;</div><div class="code_line">l_list * genNode( char ch )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;l_list * rval = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;rval = ( l_list * )malloc( sizeof( l_list ) );</div><div class="code_line">&nbsp;&nbsp; &nbsp;rval-&#62;ch = ch;</div><div class="code_line">&nbsp;&nbsp; &nbsp;rval-&#62;next = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return rval;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">l_list * genList( const char *instr )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int len = strlen( instr ), i = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;l_list *rval = 0, *next = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( !len )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;next = rval = genNode( instr[0] );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for (i = 1; i &#60; len; i++ )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;l_list * tmpPtr = genNode( instr[i] );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;next-&#62;next = tmpPtr;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;next = ( l_list * )next-&#62;next;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return rval;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void freeList( l_list *head )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( !head )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( head-&#62;next )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;freeList( ( l_list * )head-&#62;next );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;free( head );</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int getListLen( l_list *head )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;static int c = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( !head )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;c++;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( head-&#62;next )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;getListLen( ( l_list * )head-&#62;next );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return c;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">char * genStr( char * buf, l_list *head )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( !head || !buf )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;*buf = head-&#62;ch;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( head-&#62;next )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;genStr( buf + 1, ( l_list * )head-&#62;next );</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;*( buf + 1 ) = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return buf;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">l_list * getPreTail( l_list *head )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( !head )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return 0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( !head-&#62;next )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return head;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( ( ( l_list * )head-&#62;next)-&#62;next )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return getPreTail( ( l_list * )head-&#62;next );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return head;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int main()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;l_list * llHead;</div><div class="code_line">&nbsp;&nbsp; &nbsp;char * str = &quot;Hi there&quot;, *outStr;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;llHead = genList( str );</div><div class="code_line">&nbsp;&nbsp; &nbsp;outStr = ( char * )malloc( getListLen( llHead ) + 1 );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;while ( llHead )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;l_list *preTail = getPreTail( llHead ), *tail;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if ( preTail &amp;&amp; ( tail = ( l_list * )preTail-&#62;next ) )</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;preTail-&#62;next = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tail-&#62;next = llHead;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;llHead = tail;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;genStr( outStr, llHead );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;printf( &quot;%s\n&quot;, outStr );</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;system( &quot;pause&quot; );</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;freeList( llHead );</div><div class="code_line">&nbsp;&nbsp; &nbsp;free( outStr );</div><div class="code_line">&nbsp;&nbsp; &nbsp;system( &quot;pause&quot; );</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2010-03-29T08:03:13+04:00">29.03.10, 04:03</time></span></span><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body">Как же Ся-писцы живут-то без конструкторов/деструкторов :&#39;( ?</div></div>]]></description>
        <author>MichSpar</author>
        <category>Разовые заказы и подработка</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=298897&amp;view=findpost&amp;p=2549620</guid>
        <pubDate>Sun, 28 Mar 2010 11:40:39 +0000</pubDate>
        <title>С. Работа со списками</title>
        <link>https://forum.sources.ru/index.php?showtopic=298897&amp;view=findpost&amp;p=2549620</link>
        <description><![CDATA[fantazer333: Написать программу, которая циклически выводит ФИО со смещением на один символ (бегущая строка):<br><br>Привет<br>тПриве<br>етПрив<br><br>С использование linked list<br><br>аська 398826738]]></description>
        <author>fantazer333</author>
        <category>Разовые заказы и подработка</category>
      </item>
	
      </channel>
      </rss>
	