Объектно-ориентированный язык программирования С++ в примерах. Сивохин А.В. - 63 стр.

UptoLike

Составители: 

ent ptr;/*-указатель на текущее поле данных; */
while((ptr=tek_stroka())!=0) /*-пока не исчерпан */
/* список элементов; */
if(ptr==stroka) return 1;/*-строка найдена; */
return 0;/*-возврат,если строка не найдена; */
}
Печать строк списка может быть осуществлена так:
#include <iostream.h> /*-стандартные классы ввода-вывода; */
void print_spisok(nlist* spisok)
{ slist_iterator tek_stroka(*(slist*)spisok);
ent ptr;/*-указатель на печатаемую строку; */
while((ptr=tek_stroka())!=0) /*-пока не все строки;*/
cout<<(char*)ptr<<"\n";
}
3.2.2.Обобщенный класс односвязных списков
Используя базовый класс slist,можно определять аналогич-
ным образом списки элементов любых типов.Специальные макро-
команды,расположенные в файле generic.h,позволяют упростить
этот процесс.Так,макрокоманда _Paste2_x(z,v) осуществляет
конкатенацию аргументов z и v,а макрокоманда declare(z,v)
формирует имя новой макрокоманды из аргумента z и слова de-
clare,а затем вызывает эту макрокоманду с аргументом v.Сле-
дующие три макрокоманды,написанные с применением указанных
стандартных макрокоманд,автоматизирует процесс формирования
циклических односвязных списков с элементами данных любых
типов,а также обеспечивает получение итераторов,связанных с
этими списками.
С помощью указанных макрокоманд список указателей на стро-
ку nlist и объект этого класса можно определить так:
63
          ent ptr;/*-указатель на текущее поле данных;          */
          while((ptr=tek_stroka())!=0) /*-пока не исчерпан      */
                                         /* список элементов;   */
                 if(ptr==stroka) return 1;/*-строка найдена;    */
          return 0;/*-возврат,если строка не найдена;           */
      }


  Печать строк списка может быть осуществлена так:


  #include  /*-стандартные классы ввода-вывода; */


  void print_spisok(nlist* spisok)
          { slist_iterator tek_stroka(*(slist*)spisok);
              ent ptr;/*-указатель на печатаемую строку;         */
              while((ptr=tek_stroka())!=0) /*-пока не все строки;*/
                  cout<<(char*)ptr<<"\n";
          }


          3.2.2.Обобщенный класс односвязных списков


  Используя базовый класс slist,можно определять аналогич-
ным образом списки элементов любых типов.Специальные макро-
команды,расположенные в файле generic.h,позволяют упростить
этот процесс.Так,макрокоманда _Paste2_x(z,v) осуществляет
конкатенацию аргументов z и v,а макрокоманда declare(z,v)
формирует имя новой макрокоманды из аргумента z и слова de-
clare,а затем вызывает эту макрокоманду с аргументом v.Сле-
дующие три макрокоманды,написанные с применением указанных
стандартных макрокоманд,автоматизирует процесс формирования
циклических односвязных списков с элементами данных любых
типов,а также обеспечивает получение итераторов,связанных с
этими списками.


 С помощью указанных макрокоманд список указателей на стро-
ку nlist и объект этого класса можно определить так:


                                63