IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Динамические структуры данных, Симметричный Циклический Без головного элемента
Renbo
сообщение 26.04.2007 14:01
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


В учебнике есть его рисунок и там есть указатель на первый элемент 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.: в названии темы указан определённый тип списка, с которым тут выполняется работа.

Сообщение отредактировано: Renbo - 26.04.2007 14:20
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 23:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"