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

 



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