Инвертирование очереди - форум программистов и не только - компьютерные программы - бесплатно
|
Вход в чаты: чат волчат и чат знакомств (если нет
регистрации в чатах, то пароль не нужен):
Cайт знакомств
Holiday.Ru - 12360781 анкет:
Реальные бесплатные знакомства в твоем городе:
Рекламное агентство Реклама SU -
контекстная реклама и
продвижение сайтов с оплатой за результат
Форум Раскрутка сайта и
форум Маркетинг и реклама.
Чаты.
Shot.Su - игровой сервер CSS и CS
Сонник.
Анекдоты.
Приметы.
Aфоризмы.
Тосты.
Баннерная сеть ClickHere
Форум Раскрутка сайтов
|
Автор |
Сообщение |
Mariaaa Зарегистрирован: 10.05.2006 Всего сообщений: 1 Откуда: Россия Пол: Женский |
10 Май 2006 Ср 16:14 Инвертирование очереди |
|
|
С++
Помогите, пожалуйста, написать функцию, инвертирующую очередь в классе QueueInt.
Вот программа:
#include<iostream.h>
#include<conio.h>
enum BOOL {false, true};
//----------------------------------------------------------- -------
class List
{
int data;
List *next, *prev;
int Get() {return data;}
public:
List(const int d)
{
data=d;
next=prev=NULL;
}
friend class ListInt;
friend class QueueInt;
friend ostream & operator<<(ostream&, ListInt*);
friend istream & operator>>(istream&, ListInt*);
};
//-------------------------------------------------------- ----------
class ListInt
{
protected:
List *back, *front, *token;
friend ostream & operator<<(ostream&, ListInt*);
friend istream & operator>>(istream&, ListInt*);
public:
ListInt()
{
back=front=token=NULL;
}
void PutToken(int val)
{
List *p = new List(val);
if(empty())
front=back=p;
else
{
back->next=p; p->prev=back;
back=p;}
}
virtual int GetToken()
{
if(token==NULL) token=front;
if(token)
{
int rv=token->data;
token=token->next;
return rv;
}
else return 0;}
BOOL empty()
{return front==NULL? true:false;}
};
//------------------------------------------------ ------------------
class QueueInt: public ListInt
{
int GetToken();
};
//--------------------------------------------------------- ---------
ostream & operator<<(ostream& os, ListInt*q)
{
os<<"<";
do
{
if(!q->empty())
os<<q->GetToken()<<",";
}
while(q->token );
return os<<">"<<endl;
}
//---------------------------------------------------------- -----
istream & operator>>(istream& is, ListInt*q)
{
int a; int k;
cout<<"Сколько элементов будите вводить? ";
is>>k;
for(int i=0; i<k; i++)
{
cout<<i+1<<": ";
is>>a;
q->PutToken(a);
}
return is;
}
//---------------------------------------------------------- -----------------
int QueueInt::GetToken()
{
if(token==NULL) token=back;
if(back)
{
back=back->prev;
if(back)
{
back->next=NULL;
}
else front=NULL;
int retval=token->data;
delete token;
token=back;
return retval;
}
else return 0;
}
//----------------------------------------------------------- ------
int main()
{
clrscr();
ListInt* lst=new ListInt;
cin>>lst;
cout<<"Список:\n";
cout<<lst;
ListInt*och;
cout<<"Очередь:\n";
cout<<och;
getch();
return 0;
} |
|
Вернуться к началу |
|
 |
Vodolaz Зарегистрирован: 05.08.2005 Всего сообщений: 199 Откуда: Мать городов русских Пол: Мужской |
24 Май 2006 Ср 18:05 Инвертирование очереди |
|
|
Блин.... В коде рыться твоём я не буду.....
Но короче создаешь стек и сначала перетакиваешь все эллементы в стек, потом в очередь... ВСЁ!! |
|
Вернуться к началу |
|
 |
|
|
|
смешные анекдоты и
политика
форум женщин - женский форум
форум компьютерные игры
музыкальный форум
Бесплатные игры и
чат знакомств
Сайты знакомств:
Знакомство.su,
К,
ML и серьезные знакомства
для брака (подбор партнера по тестам).
Партнерка Яндекса
Замуж за рубеж:
любовный маг,
невеста
сервис ремонт фотоаппаратов
|
pr агентство Реклама SU,
оптимизация сайтов,
баннеры - баннерная сеть.
Партнерские программы
Бесплатные сервисы для вас:
Виртуальная клавиатура и транслит.
IP адрес - где узнать мой IP адрес?
ip address

free forum
|