HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Пример циклической очереди на Turbo C.
  #1  
Старый 28.03.2010, 19:20
IgrikX
Познающий
Регистрация: 13.08.2009
Сообщений: 92
С нами: 8812922

Репутация: 1
По умолчанию Пример циклической очереди на Turbo C.

Есть у кого пример циклической очереди на С. Срочно нужен!
 
Ответить с цитированием

  #2  
Старый 28.03.2010, 21:57
greki_hoy
Познающий
Регистрация: 04.03.2010
Сообщений: 32
С нами: 8520171

Репутация: 23
По умолчанию

2IgrikX - вот схема однонаправленной (не деки) кольцевой очереди

Код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

typedef struct queue
{
	struct node *head;
	struct node *tail;
	size_t count;
} queue;

typedef struct node
{
	struct node *prev;
	struct node *next;
	void *data;
} node;

queue *new_queue(queue *q)
{
	q = malloc(sizeof(*q));
	q->count = 0;
	q->head = NULL;
	q->tail = NULL;
	return q;
}

typedef void item;

node *add_item_queue(queue *q, item *it, size_t size)
{
	node *n = malloc(sizeof(*n));
	if (q->count == 0)
	{
		q->head = n;
		n->next = NULL;
		n->prev = NULL;
	}
	else
	{
		n->next = q->head;
		n->prev = q->tail;
		q->tail->next = n;
	}
	q->tail = n;
	q->count++;
	n->data = malloc(size);
	memmove(n->data, it, size);
	return n;
}

node *get_queue_head(queue *q)
{
	return q->head;
}

int main(void)
{
	queue *q = NULL;
	node *n;
	q = new_queue(q);
	add_item_queue(q, "Phoenix", 8);
	add_item_queue(q, "Zombie", 7);
	add_item_queue(q, "Paradox", 8);
	n = get_queue_head(q);
	for (;;)
	{
		puts(n->data);
		n = n->next;
	}
}
несложно переделать в кольцевой дек
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
За месяц технологией Opera Turbo воспользовались 3 млн человек Andres Мировые новости. Обсуждения. 15 22.10.2009 20:55
Услуги-Цены детские option Freelance - О Работе 17 10.05.2009 20:35
Онлайн база номеров De1eT Skype, IRC, ICQ, Jabber и другие IM 154 07.01.2008 20:37



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.