ВУЗ:
Составители:
Рубрика:
140
p = NULL;
while ( n > 0 ){ q = new elem;
q->data = n; q->next = p; p = q ;
n – –;}
Заметим, что при включении элемента в голову списка порядок
элементов в списке обратен порядку их включения.
Основная операция при работе со списком – это проход по спи-
ску.
Предположим, что с каждым информационным элементом звена
нужно выполнить некоторую операцию, которая реализуется функцией
void P(ETYPE). Пусть также опять p указывает на начало списка. Тогда
проход по списку осуществляется так:
q = p;
while (q) {
P ( q->data );
q = q->next; }
Пример. Во входном файле num.txt находится последователь-
ность, содержащая нечетное количество целых чисел.
Напишем программу, в результате выполнения которой выводит-
ся число, занимающее в этой последовательности центральную пози-
цию.
#include < fstream.h > // Для работы с файлом ввода.
#include < stdlib.h >
struct elem { int data;
elem *next; };
void main ( ){
ifstream infile ( “num.txt“ );
/* Создается входной поток с именем infile для чтения данных,
разыскивается файл с именем “num.txt“; если такой файл не существует,
то конструктор завершает работу аварийно и возвращает для infile ну-
левое значение.
*/
if ( !infile ) {
cout << “Ошибка при открытии файла num.txt!\n“; exit (1); }
elem *p = NULL, *q;
int j = 0;
while ( infile.peek() != EOF ) {
Страницы
- « первая
- ‹ предыдущая
- …
- 136
- 137
- 138
- 139
- 140
- …
- следующая ›
- последняя »