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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2017, 19:48   #1
holykilla
Пользователь
 
Регистрация: 04.04.2017
Сообщений: 12
Сообщение Объясните работу этого кода ( структуры )

Объясните работу этого куска кода создания очереди ( структур )
желательно по строчно оч надо :C

Код:
struct list
	{
		int l; // поле данных
		list *next; // указатель на следующий элемент
	};

	struct queue // данные этого типа
	{
		list *b, *end;
	};

	void putToQueue(queue *q, int x)   //добавить в очередь
	{
		list *m;
		m = new list; // выделение памяти
		m->next = 0;
		m->l = x;
		if (q->end != 0)
			q->end->next = m;
		else 
			q->b = m;
		q->end = m;
	}

	int takeFromQueue(queue *q, int *x) // взять из очереди
	{
		if (q->b == 0) return 0;
		list *m;
		m = q->b;
		*x = m->l;
		q->b = m->next;
		delete m;
		if (q->b == 0) q->end = 0;
		return 1;
	}

	queue *CreateQueue()            //создать очередь
	{
		queue *q;
		q = new queue; // выделение памяти
		q->b = 0;
		q->end = 0;
		return q;
	}

	int isQueueEmpty(queue *q)      //проверка очереди на пустоту
	{
		if (q->b == 0) return 1;
		return 0;
	}

	int ClearQueue(queue *q)        //очистка всей очереди
	{
		if (q->b == 0) return 0;
		list *m, *t;
		m = q->b;
		while (m->next != 0)
		{
			t = m;
			m = t->next;
			delete t;
		}
		q->b = 0;
		q->end = 0;
		return 1;
	}


	void PrintQueue(queue *q)       //вывестии очередь на экран
	{
		printf("\n");
		queue *m = CreateQueue();
		int x;
		while (!isQueueEmpty(q))
		{
			takeFromQueue(q, &x);
			printf("%d ", x);
			putToQueue(m, x);
		}
		while (!isQueueEmpty(m))
		{
			takeFromQueue(m, &x);
			putToQueue(q, x);
		}
	}
HELP!
holykilla вне форума Ответить с цитированием
Старый 20.12.2017, 20:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

https://ru.wikipedia.org/wiki/%D0%9E...BD%D0%B8%D0%B5)
https://ru.wikipedia.org/wiki/%D0%A1...81%D0%BE%D0%BA
p51x на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Объясните, пожалуйста, работу цикла LanaTsvik Помощь студентам 1 22.12.2016 21:48
объясните работу программы _ROBERT_ Помощь студентам 2 14.05.2013 08:56
Объясните содержание этого кода djager4723 Общие вопросы по Java, Java SE, Kotlin 0 22.09.2012 14:12
Задачи на одномерный массив и работу с парами элементов этого массива Raikerian Паскаль, Turbo Pascal, PascalABC.NET 0 22.10.2011 16:12
Как ускорить работу этого макроса? Neo007 Microsoft Office Excel 1 22.06.2009 18:14