Скачать презентацию Динамические структуры данных Линейный однонаправленный список Описание Скачать презентацию Динамические структуры данных Линейный однонаправленный список Описание

list.ppt

  • Количество слайдов: 16

Динамические структуры данных Линейный однонаправленный список Динамические структуры данных Линейный однонаправленный список

Описание : n type n data=integer; n l_ptr= ^node; n node = record n Описание : n type n data=integer; n l_ptr= ^node; n node = record n inf: data; n next: l_ptr; n end;

Шаг 0 El: =nil Шаг 0 El: =nil

Шаг 1 Шаг 1

Шаг 2 Шаг 2

Шаг 3 Шаг 3

Шаг 4 Шаг 4

new(p); p^. inf: =d; p^. next: =el; el: =p; new(p); p^. inf: =d; p^. next: =el; el: =p;

Создание пустого списка function create: l_ptr; begin create: =nil; end; Создание пустого списка function create: l_ptr; begin create: =nil; end;

Процедура добавления элемента в начало списка procedure add(var el: l_ptr; d: data); var p: Процедура добавления элемента в начало списка procedure add(var el: l_ptr; d: data); var p: l_ptr; begin new(p); p^. inf: =d; p^. next: =el; el: =p; end;

Переход на следующий элемент function next(el: l_ptr): l_ptr; begin next: =el^. next; end; Переход на следующий элемент function next(el: l_ptr): l_ptr; begin next: =el^. next; end;

Нахождение содержимого элемента списка function inf(el: l_ptr): data; begin inf: =el^. inf; end; Нахождение содержимого элемента списка function inf(el: l_ptr): data; begin inf: =el^. inf; end;

Проверка списка на наличие в нем элементов function eol(el: l_ptr): boolean; begin eol: =(el=nil); Проверка списка на наличие в нем элементов function eol(el: l_ptr): boolean; begin eol: =(el=nil); end;

Процедура печати всех элементов списка procedure print_list(el: l_ptr); var temp: l_ptr; begin temp: =el; Процедура печати всех элементов списка procedure print_list(el: l_ptr); var temp: l_ptr; begin temp: =el; while not(eol(temp)) do begin writeln(inf(temp)); temp: =next(temp); end;

Процедура удаления списка procedure destroy(var el: l_ptr); begin if not(eol(el)) then destroy(el^. next); if Процедура удаления списка procedure destroy(var el: l_ptr); begin if not(eol(el)) then destroy(el^. next); if not(eol(el)) then dispose(el); end;

program list; uses U_list, CRT; var l, temp: l_ptr; n: integer; i: integer; begin program list; uses U_list, CRT; var l, temp: l_ptr; n: integer; i: integer; begin Writeln(’Введите количество элементов списка'); readln(n); l: =create; for i: =1 to n do add(l, i); print_list(l); destroy(l); end.