ВУЗ:
Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »
