ГоловнаЗворотній зв'язок
Главная->Математика і інформатика->Содержание->Листинг 4.14. Реализация поиска в мультисписке

Алгоритмы структуры данных

Листинг 4.14. Реализация поиска в мультисписке

type

stype = array[1..20] of char;

ctype = array[1..5] of char;

recordkinds = (student, course, enrollment);

recordtype = record

case kind : recordkinds of

student: (studentname: stype;

firstcourse: ↑recordtype);

course:(coursename: ctype;

firststudent: ↑recordtype);

enrollment: (cnext, snext: ↑recordtype)

end;

 

procedure printstudents ( cname: ctype );

var

c, e, f: ↑recordtype;

begin

c:= указатель на запись курса, где с↑.coursename = cname;

{ последний оператор зависит от того,

как реализовано множество записей курсов }

е:= с↑.firststudent;

{ е пробегает по кольцу указателей

регистрационных записей }

while e↑.kind = enrollment do begin

f:= e;

repeat

f:= f↑.cnext

until

f↑.kind =  student;

{  сейчас  f — указатель на студента-собственника регистрации е↑  }

writeln(f↑.studentname) 

е:=  e↑.snext

end

end;   { printstudents  }

 

65