Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2009, 21:05   #1
vo_sa
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 15
По умолчанию STACK и QUEUE

так описывается стек, у него удаляется последний элемент. мне нада чтоб была очередь, где удаляется первый элемент. как это реализовать?

Код:
struct STACK // создается структура с именем СТЕК
{ 
char name[30];// наименование
float plsh;// площадь
int etzh; // этажность
float gdsr; // год сооружения
float stm;// стоймость млн.руб.
STACK* prev;
};
 

STACK* push(STACK* ptrStack,STACK old_stack )
{
STACK* tmp=ptrStack;
ptrStack=new STACK;
strcpy(ptrStack->name,old_stack.name);
ptrStack->plsh=old_stack.plsh;
ptrStack->etzh=old_stack.etzh;
ptrStack->gdsr=old_stack.gdsr;
ptrStack->stm=old_stack.stm;
ptrStack->prev=tmp;
return ptrStack;
};

STACK* pop(STACK* ptrStack)// удаление элементов из стека
{
STACK* tmp=NULL;
tmp=ptrStack;
ptrStack=ptrStack->prev;
delete tmp;
return ptrStack;
};
vo_sa вне форума Ответить с цитированием
Старый 24.03.2009, 21:52   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Код:
QUEUE* pop(QUEUE* Head)
{
   if(Head) {
      
   QUEUE *tmp=Head;
   
   if(Head->Neaxt)
   {
       Head=Head->Next;
   }
   else
   {
       Head=NULL;
    }

   return tmp;} // если вернул указатель не забудь память освободить после окончания работы с ним
   return NULL;
}
};

Последний раз редактировалось counter; 24.03.2009 в 21:59.
counter вне форума Ответить с цитированием
Старый 25.03.2009, 08:57   #3
vo_sa
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 15
По умолчанию

в своем коде заменил слова STACK на QUEUE . и заменил на твою функцию pop. не работает.
Код:
error C2065: 'Head' : undeclared identifier
error C2227: left of '->Next' must point to class/struct/union/generic type
        type is ''unknown-type''
vo_sa вне форума Ответить с цитированием
Старый 25.03.2009, 11:45   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

мало заменить слова, ты еще забыл описать структуру типа QUEUE

Код:
struct QUEUE {
char name[30];
float plsh;
int etzh; 
float gdsr; 
float stm;
QUEUE* Next;}
Head - указатель на голову очереди, такой же как у тебя STACK* ptrStack

функция добавления элементов в очередь тоже изменится - элементы надо добавлять в конец очереди

http://khpi-iip.mipk.kharkiv.edu/lib...gsu/oglav.html
counter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
class queue Freer Общие вопросы C/C++ 6 16.01.2009 00:05
Stack Overflow??? Рустам Общие вопросы Delphi 7 01.04.2008 17:24
Stack owerflow - глюки с TThread IOrist Общие вопросы Delphi 4 11.11.2007 09:13