Динамические структуры данных - слова по алфавиту - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Нужна помощь! Не знаю как даже начать... В общем, само задание: Дана последовательность слов, длиной от 1 до 6, разделённые запятой и оканчивающееся точкой. Распечатать в алфавитном порядке все слова. (использовать однонаправленный список)

Решение задачи: «Динамические структуры данных - слова по алфавиту»

textual
Листинг программы
procedure AddSorted(var u : spis;
                    after : spis; s : string);
var p : spis;
begin
  new(p);
  p^.data := s;
 
  if after = nil then p^.next := nil
  else p^.next := after^.next;
 
 
  if u = nil then
  begin
    u := p;
    p^.next := after;
  end
  else
    after^.next := p;
end;
 
procedure Add(var u : spis; s : string);
var p : spis;
begin
  p := u;
  if (p <> nil) and (Up(s) > Up(p^.data)) then
    while (p^.next <> nil) and (Up(s) > Up(p^.next^.data)) do p := p^.next
  else u := nil;
 
  AddSorted(u, p, s);
end;

Объяснение кода листинга программы

  1. В процедуре AddSorted создается новый элемент в динамической структуре данных, которая представляет собой связный список. Элемент имеет поля data (данные) и next (следующий элемент). Переменная u содержит ссылку на начало списка, а переменная p используется для хранения нового элемента.
  2. Если переменная after равна nil, то новый элемент становится концом списка. В противном случае, новый элемент становится следующим за после.
  3. Если переменная u равна nil, то создается новый элемент и переменная u устанавливается равной этому элементу. Также устанавливается значение p^.next равным значению после.
  4. В процедуре Add, если переменная u равна nil, то создается новый элемент и переменная u устанавливается равной этому элементу. Затем вызывается процедура AddSorted, которая добавляет новый элемент в список.
  5. В процедуре AddSorted, если переменная u равна nil, то список пуст, и новый элемент становится началом списка. В противном случае, новый элемент становится следующим за после.
  6. Если переменная Up(s) больше значения Up(p^.data), то происходит добавление нового элемента в список. Это продолжается до тех пор, пока значение Up(s) больше значения Up(p^.next^.data).
  7. После добавления нового элемента, вызывается процедура AddSorted, которая сортирует список по возрастанию значения Up(data).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы