Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Динамические структуры данных

Автор: Renbo 26.04.2007 18:01

В учебнике есть его рисунок и там есть указатель на первый элемент First и на поседний ,как я понимаю, L.
Прикрепленное изображение

Вот что необходимо реализовать для начала:
1.Создание пустого списка.
2.Вывод на экран содержимого списка в виде таблицы.
3.Вставка элемента в начало, в конец списка (предусмотреть оба варианта).


ВОт что я сделал, но ИМХО вообще не то:



USES CRT;
TYPE

EL=^zap;
zap=record
tabnom:integer; {первое информационное поле, там содержится табельный номер}
familia:string; {второе информационное поле, там содержится фамилия}
Next, Prev: EL;
End;

VAR
First,P,Q,T,E:EL;


Procedure Create_empty_List (Var First: EL);
Begin
First:=NIL;
End;


Procedure Create_new_element (Var P:EL);
Begin
NEW(P);
writeln('Введите табельный номер:');
readln(p^.tabnom);
writeln('Введите фамилию сотрудника:');
readln(p^.familia);
p^.Next:=NIL;
p^.Prev:=NIL;
End;


Procedure ListPrint (P:EL);
Begin
p:=
writeln(p^.tabnom,' : ',p^.familia);
p:=p^.Next;
end;
readkey;
End;

procedure menu;
VAR
F:integer;
ch:char;
begin
repeat
F:=0;
clrscr;
writeln('Работа со списками:');
writeln;
writeln('1 -> Создание пустого списка');
writeln('2 -> Формирование очередного элемента списка');
writeln('3 -> Вывод списка на экран');
writeln('4 ->');
writeln('5 ->');
repeat
ch:=readkey;
IF not(ch in ['1'..'5']) then
begin
writeln('неверная клавиша!');
F:=F+1;
if F=4 then
begin
writeln('программа завершена из-за неправильного ввода данных');
writeln('нажмите любую кнопку для выхода');
readkey;
end
else
if F=3 then
begin
writeln('у вас ещё ', 4-F,' попытка');
writeln('выберите существующий пункт подменю');
end
else
begin
writeln('у вас ещё ', 4-F,' попытки');
writeln('выберите существующий пункт подменю');
end;
end;
until (ch in ['1'..'5']) or (F=4);
case ch of
'1': Create_empty_List(First);
'2': Create_new_element(P);
'3': ListPrint(P);
'4': ;
end;
until (F=4) or (ch='5');
end;


Begin
menu;
End.




Что не так ?
P.s.: в названии темы указан определённый тип списка, с которым тут выполняется работа.

Автор: volvo 26.04.2007 18:04

То есть, FAQ -> http://forum.pascal.net.ru/index.php?s=&showtopic=2706&view=findpost&p=23570 и поиск НИКАК не подойдут, надо самому велосипед придумать, так?

Добавлено через 2 мин.
А насчёт "что неправильно" - ну, сформировал ты новый элемент... А кто его со списком-то связывать будет? На него же ничто не указывает...