Скачиваний:
58
Добавлен:
02.05.2014
Размер:
118.78 Кб
Скачать

Алгоритм обработки стека Постановка задачи

Программа должна предусматривать включение нового элемента в стек, исключение очередного элемента из стека, просмотр всего содержимого стека.

Стек по структуре представляет собой линейный однонаправленный список. Элемент списка это запись, содержащая два поля – информационное и указательное. Тип информационного поля для общего случая определим как тип tinf ( в задаче этот тип должен быть конкретно определен, в нашем примере он определяется как integer). Указательное поле представляет собой ссылку на следующий элемент списка, т. е. оно ссылочного типа на тип элемента списка. Такие типы можем определить следующим образом

type tinf=< тип информации, включаемой в стек>;

pel=^tel;{указательный тип на элемент стека}

{тип элемента списка}

tel=record

inf:tinf;

uk:pel

end;

Важное примечание: Посмотрите на определение типов. Вспомните главное правило языка Паскаль – каждое новое определение должно базироваться а стандартных понятиях , либо ранее определенных (по тексту). В данном случае для того. чтобы определить тип pel необходимо знать определение типа tel, который определяется ниже по тексту. А для того, чтобы определить тип tel, необходимо знать определение типа pel. Для устранения этой неоднозначности принято следующее правило – ссылочный (указательный) тип необходимо определять ранее базового типа, на который указывает ссылочный тип.

Стек может быть представлен следующим образом:

Включение и исключение элементов стека производится «через голову списка» - новый элемент всегда включается первым, текущий исключаемый элемент всегда первый из списка. Просмотр осуществляется последовательно - подряд от первого до последнего элементов.

Логическая структура программы

Разработка подпрограмм Разработка первой подпрограммы

  1. Спецификация

  1. Назначение: включение нового элемента в стек

  2. Имя: VKL

  3. Вид: процедура

  4. Перечень параметров:

    Статус

    Назначение

    Имя

    Тип

    Вид

    Вход/выход

    Голова стека

    Head

    PEL

    Параметр-переменная

    Вход

    Информация, включаемая в стек

    Inf

    Tinf

    Параметр-значение

  5. Заголовок:

Procedure VKL (Var Head:PEL; Inf: Tinf);

  1. Метод решения

1. Создать структуру, соответствующую элементу списка, с помощью рабочей ссылочной переменной new(tek);

2. Заполнить информационную часть нового элемента tek^.inf:=Inf;

3. Организовать связь между новым элементом и первым элементом стека tek^.uk:=head;

4. Связать новый элемент с головой стека Head:=tek .

  1. Информационная модель

Назначение

Имя

Тип

Указатель на новый элемент

tek

PEL

Соседние файлы в папке Лекции по Паскалю