Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Реализации очереди с помощью курсоров.


Автор: rojam 24.2.2006, 21:08
Как написать программу реализации очереди с помощью курсоров. Прошу помощи!!! Заранее спасибо.

Автор: Fin 24.2.2006, 21:58
Что ты понимаеш под словом "курсор". Связанные списки чтоли?

Автор: Fixin 24.2.2006, 22:12
Цитата(Fin @ 24.2.2006, 21:58 Найти цитируемый пост)
под словом "курсор"
Указатели наверное.

Автор: rojam 24.2.2006, 22:50
Задача по теме: "Построение алгоритмов. Абстрактные типы данных. Деревья." Это, к сожалению, все что я понимаю... smile

Автор: Fin 24.2.2006, 22:59
Все ясно, построение очереди через указатели. Т.е. однонаправленные списки. Язык программирования? Можно ли применять ООП?
Добавлено @ 23:03
И еше один вопрос в догонку. Очереди бывают двух видов LIFO и FIFO. Какой именно механизм?

Автор: Бегемот 25.2.2006, 03:22
Цитата

Очереди бывают двух видов LIFO и FIFO.


Fin, ой, ой, ой! smile Как же так? В самом названии - "очередь" - уже говорится что енто такое! Очередь реализует принцип обслуживания FIFO! Ну, а LIFO - это уже стек!
Ну, разве не так?!

Автор: Бегемот 25.2.2006, 04:04
Программа формирует очередь из десяти чисел и выводит её на экран!
Код

#include<iostream.h>
#include<conio.h>
struct Node
{
   int k;
   Node *p;
};
Node* First(int k);
void Add(Node **pEnd, int k);
int Delete(Node **pBeg);

int main()
{
   Node *pBeg = First(1);
   Node *pEnd = pBeg;
   for(int i=2; i<=10; i++)
      Add(&pEnd, i);
   while(pBeg)
      cout << Delete(&pBeg) << ' ';
   getch();
   return 0;
}
// Начальное формирование очереди
Node* First(int k)
{
   Node *pv = new Node;
   pv->k = k;
   pv->p = 0;
   return pv;
}
// Добавление в конец очереди
void Add(Node **pEnd, int k)
{
   Node *pv = new Node;
   pv->k = k;
   pv->p = 0;
   (*pEnd)->p = pv;
   *pEnd = pv;
}
// Выборка элементов из очереди
int Delete(Node **pBeg)
{
   int temp = (*pBeg)->k;
   Node *pv = *pBeg;
   *pBeg = (*pBeg)->p;
   delete pv;
   return temp;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)