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

Очередь

Читайте также:
  1. g. Если работает на табачном проекте, в первую очередь спрашиваем, курит ли человек
  2. N-КАНАЛЬНАЯ СМО С НЕОГРАНИЧЕННОЙ ОЧЕРЕДЬЮ
  3. Qu * s1; // объявлен указатель на очередь глобальный
  4. В свою очередь виновник ДТП Санасаров Д.В. судом первой инстанции не был привлечен в дело в качестве соответчика, не в качестве третьего лица.
  5. Если тёмные силы лишить среды обитания, они, как рыбы без воды, станут умирать и в первую очередь исчезнут из судьбы того, кто отказался их кормить.
  6. Как позаботиться в первую очередь о своих потребностях или Мужчина на всю жизнь, а не только на Рождество
  7. Лечение любой болезни должно начинаться в первую очередь с очищения.

Очередь – это связанная структура данных, в которой добавлять элементы можно только в конец (хвост) очереди, а удалять и читать можно только элементы с начала (вершины) очереди.

 

первый элемент последний

очереди элемент

               
     
       
 


… 0

data next
s начало конец

           
 
   
 
 
   


новый

элемент

//------------------------------------------------------------------------------------------------

// Функция добавления элемента в конец очереди

#include <iostream.h>

struct qu { int data; qu* next; };

void dop (qu *& s, int dat) // ссылка на указатель на начало

// очереди

{ qu * p = s, //тек. указатель устанавливаем на начало очереди

*q = 0, // всп. yказатель на NULL

*nst= new (qu); // выделили память для нового элемента

nst -> data = dat;

nst->next=NULL; // это последний элемент очереди

while (p) // пока указатель не достигнет нулевого значения

{ q=p; p= p ->next; }; // продвигаемся по очереди к концу

if (q) q -> next= nst; // последний ненулевой элемент должен

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

else s = nst; // новый элемент первый в очереди

}

//------------------------------------------------------------------------------

// Функция удаления элемента из очереди, возвращает удаляемую //информацию. Удаление производится из вершины очереди

int ud (qu*& s)

{ int k=0;

qu* fr = s // указатель на начало очереди

if(s)

{ k = s -> data; s = s -> next; delete fr;}

return k; }

//----------------------------------------------------------------------------------

// Функция чтения элемента из начала очереди

int cht (qu*s)

{ if(s) return s ->data; }

//-------------------------------------------------------------------------

// Функция чтения элементов очереди рекурсивная

int cht1 (qu*s)

{ if(s==NULL) {cout<<”\nэлементов нет”; return;}

cout<<”\n data = “<< s->data;

cht1(s->next);

}

////-------------------------------------------------------------------------

// Функция чтения элементов очереди итерационная

int cht2 (qu*s)

{qu* list=s;

if(list==NULL) cout<<”\nэлементов нет”;

else while(list)

{cout<<”\n data = “<< list->data;

list=list->next;}

}


Дата добавления: 2015-07-26; просмотров: 79 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Новый элемент стал вершиной стека.| Qu * s1; // объявлен указатель на очередь глобальный

mybiblioteka.su - 2015-2024 год. (0.006 сек.)