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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2010, 12:51   #1
DarkSwan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 20
По умолчанию Работа со списком типа очередь

Здравствуйте. Нужно создать числовой список типа очередь из 5 объектов. Распечатать его. Далее выполнить следующие операции:
1. Добавить два новых элемента. Распечатать очередь.
2. Поменять местами 1-ый и последний элементы в очереди. Распечатать очередь.
3. Удалить три первых объекта. Распечатать очередь.

Работа встала после первого пункта (и то непонятно, правильно или нет)

Код:
#include "stdafx.h"
#include "iostream.h"

struct elem
{
	int inf;	//информационное поле
	struct elem *link;	//указатель на предыдущий элемент очереди
}*begq=NULL,*endq=NULL;

void addel(int val)	//функция создания/дополнения очереди
{
	elem *p=new elem;	//временный указатель на элемент очереди
	p->inf=val;	//запись информации
	p->link=NULL;	//запись указателя на прерыдущий элемент
	if(endq==NULL)begq=p;	//если создатся первый элемент очереди
	else endq->link=p;	//если создается очередной элемент очереди
	endq=p;
	cout<<"Element = "<<p->inf<<endl;	//вывод очереди
}

int getdelel(void)	//функция для извлечения информации из начального элемента и освобожд. его памяти
{
	elem *p;	//временный указатель на элемент очереди
	int temp;
	temp=begq->inf;
	p=begq;
	begq=p->link;
	if(begq==NULL) endq=NULL;	//если удаляется последний элемент очереди
	delete p;
	return temp;
}

int main(int argc,char* argv[])
{
	cout<<"Pervonachalnii spisok:"<<endl;
	for(int i=1;i<=5;i++)	//создание очереди из 5 элементов
		addel(i);
	cout<<"\n"<<"2 novih elementa spiska:"<<endl;
	for(i=8;i<=9;i++)	//добавление 2 элементов
		addel(i);
	cout<<"\n"<<"Pomenyanie mestami 1 i poslednii elementi:"<<endl;
	??????????
	cout<<"\n"<<"Ochered' s udalennimi 3 ob'ektami:"<<endl;
	??????????
	//удаление очереди с распечаткой ее элементов
//	while(begq!=NULL) cout<<"Value = "<<getdelel()<<endl;
	return 0;
}
DarkSwan вне форума Ответить с цитированием
Старый 14.12.2010, 16:47   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Добавление работает нормально.
Вот проверь
Код:
elem *p = begq;
	while ( p != NULL )
	{
	 cout<<p->inf<<" ";
	 p = p->link;
	}
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 15.12.2010, 08:28   #3
DarkSwan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 20
По умолчанию

Спасибо, мне уже помогли с решением.
DarkSwan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
классы. контейнер типа очередь Laplas Помощь студентам 0 29.05.2010 23:57
Работа со списком Delphi novi4ok_Delphi Помощь студентам 3 11.03.2010 15:28
Работа со списком сетевых подключений zanneo Win Api 2 15.08.2008 10:51