Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Пример описания списка






    Type ukazat= ^S;
    S= record
    Inf: integer;
    Next: ukazat;
    End;

    Создадим первый элемент списка:

    New (u); {выделяем место в памяти}
    u^. Next: = nil; {указатель пуст}
    u^. Inf: =3;

    Продолжим формирование списка. Для этого нужно добавить элемент либо в конец списка, либо в голову.

    А) Добавим элемент в голову списка. Для этого необходимо выполнить последовательность действий:

    · получить память для нового элемента;

    · поместить туда информацию;

    · присоединить элемент к голове списка.

    New(x);
    Readln(x^.Inf);
    x^. Next: = u;
    u: = x;

    Б)Добавление элемента в конец списка. Для этого введем вспомогательную переменную, которая будет хранить адрес последнего элемента. Пусть это будет указатель с именем hv (хвост).

    x: = hv;

    New(x^. next); {выделяем память для следующего элемента}

    x: = x^.next;
    x^.next: = nil;
    x^. inf: = 5;
    hv: =x;

    Просмотр списка

    While u< > nil do
    Begin
    Writeln (u^.inf);
    u: = u^.next; >
    end;

    Удаление элемента из списка

    А)Удаление первого элемента. Для этого во вспомогательном указателе запомним первый элемент, указатель на голову списка переключим на следующий элемент списка и освободим область динамической памяти, на которую указывает вспомогательный указатель.

    x: = u;
    u: = u^.next;
    dispose(x);

    Б) Удаление элемента из середины списка. Для этого нужно знать адреса удаляемого элемента и элемента, стоящего перед ним. Допустим, что digit – это значение удаляемого элемента.

    x: = u;
    while (x< > nil) and (x^. inf< > digit) do
    begin
    dx: = x;
    x: = x^.next;
    end;
    dx: = x^.next:
    dispose(x);

    В)Удаление из конца списка. Для этого нужно найти предпоследний элемент.

    x: = u; dx: = u;
    while x^.next< > nil do
    begin
    dx: = x; x: = x^.next;
    end;
    dx^.next: = nil;
    dispose(x);

    Прохождение списка. Важно уметь перебирать элементы списка, выполняя над ними какую-либо операцию. Пусть необходимо найти сумму элементов списка.

    summa: = 0;
    x: = u;
    while x< > nil do
    begin
    summa: = summa+ x^.inf;
    x: = x^.next;
    end;






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.