У вас вопросы?
У нас ответы:) SamZan.net

Лекция 14 4932

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 1.2.2025

PAGE  2

Лекция 14

4.9.3.2. Стеки 

    Стек – это некоторый вариант однонаправленного списка, в котором добавление и выборка элементов выполняются с одного конца, называемого вершиной стека. Другие операции со стеком не определены. При выборке элемент исключается из стека. Говорят, что стек реализует принцип обслуживания LIFO (lastin, firstout). Стек можно проиллюстрировать вертикальной стопкой тарелок, если они складываются и извлекаются по одной сверху.

    Стеки широко применяются в системном программном обеспечении, компиляторах, в различных рекурсивных алгоритмах.

    Ниже приведена программа, которая формирует стек из пяти целых чисел (1, 2, 3, 4, 5) и выводит его на экран. Функция помещения в стек по традиции называется push, функция выборки – pop. Указатель для работы со стеком (top) всегда ссылается на его вершину.

#include <iostream.h>

struct Node

  {

  int d:

  Node *p;

  };

//  Объявления функций 

Node  *first (const int d);

void  push (Node **top, const int d);

int  pop (Node **top);

const  int  N = 5;

    

int  main ()

  {

  Node *top = first (l);

  for  (int  i = 2; i <=  N; i++)  push (&top,  i);

  while (top)  cout << pop (&top) <<  '   ';

  return 0;

  }

Результат работы программы: 5 4 3 2 1.

/***   Определения функций   ***/

// Начальное формирование стека

Node *first (const int d)

  {

  Node *pv = new Node;

  pv->d = d; pv->p = 0;

  return  pv;

  }

//  Запись в стек

void  push (Node **top, const int d)

  {

  Node *pv = new Node;

  pv->d = d; pv->p = *top; *top = pv;

  }

// Выборка из стека

int pop (Node **top)

  {   

  int temp = (*top)->d;

  Node *pv = *top;

  *top = (*top)->p;

  delete pv;

  return temp;

   }

4.9.3.3. Очереди

    Очередь – вариант однонаправленного списка, добавление элементов в который производится с одного конца, а выборка – с другого конца. Другие операции с очередью не определены. При выборке элемент исключается из очереди. Говорят, что очередь реализует принцип обслуживания FIFO (first – in, first – out). Эту структуру данных можно сравнить с очередью в магазине. В программировании очереди применяются в моделировании, диспетчеризации задач операционной системой, буферизованном вводе/выводе и т.д.

    Ниже приведена программа, которая формирует очередь из пяти целых чисел и выводит ее на экран. Функция записи в очередь называется add, выборки – del. Указатель начала очереди называется pbeg, указатель конца – pend.

#include <iostream.h>

struct Node

  {

  int d;

  Node *p;

  };

//  Объявления функций

Node *first (const int d);

void add (Node **pend, const int d);

int del (Node **pbeg);

const  int  N = 5;

int main ()

  {

  Node *pbeg = first (l);

  Node *pend = pbeg;

  for (int i = 2; i <= N; i++) add (&pend, i);

  while (pbeg) cout << del (&pbeg) <<  '   ';

  return 0:

  }

Результат работы программы: 1 2 3 4 5.

/***   Определения функций   ***/

//  Начальное формирование очереди

Node *first (const int d)

  {

  Node *pv = new Node;

  pv->d = d; pv->p = 0;

  return pv;

  }

// Запись в очередь

void add (Node **pend, const int d)

  {

  Node *pv = new Node:

  pv->d = d; pv->p = 0;

  (*pend)->p = pv; *pend = pv;

  }

// Выборка из очереди

int del (Node **pbeg)

  {

  int temp = (*pbeg)->d;

  Node *pv = *pbeg;

  *pbeg = (*pbeg)->p;

  delete pv;

  return temp;

  }




1. Стаття 1 Загальні положення Основні засади державної аграрної політики спрямовані на забезпечення сталого
2. тематичної та технологічної освіти Технологопедагогічний факультет Кафедра технікотехнологічних дисц
3. Эволюция молока Вселенной
4. Был в гостях у тещи с тестемтри дня меня кормили и поили а в туалет по большомукак то стеснялся сходить.html
5. Понятие виды и цели образования особо охраняемых природных территорий.html
6. на тему- Проектирование информационной системы для автоматизации учета клуба собаководства
7. варіантів використання ресурсів
8. тематичної та технологічної освіти Фізико математичний факультет Кафедра ІКС Сучасні мереж
9. Информационные потребности студента
10. .п. мн.ч. БбалОванный прич.