ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »