Читайте также:
|
|
Очередь – это связанная структура данных, в которой добавлять элементы можно только в конец (хвост) очереди, а удалять и читать можно только элементы с начала (вершины) очереди.
первый элемент последний
очереди элемент
… 0
|
новый
элемент
//------------------------------------------------------------------------------------------------
// Функция добавления элемента в конец очереди
#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; // объявлен указатель на очередь глобальный |