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

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

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

 
 Ответить  Открыть новую тему 
> Динамические структуры данных, Симметричный Циклический Без головного элемента
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






То есть, FAQ -> Все о динамических структурах данных. и поиск НИКАК не подойдут, надо самому велосипед придумать, так?

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

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 22.09.2020 15:24
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name