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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2013, 15:15   #1
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию Очередь на Си

Создать файл целых чисел.За один просмотр файла вывести сначала порядковые номера наименьших чисел, а затем-самых больших, сохраняя порядок занесения чисел в файл.
Vasya94 вне форума Ответить с цитированием
Старый 05.10.2013, 15:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я так понимаю наработок нет, и ничего не получается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.10.2013, 18:17   #3
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Нет наработки есть только дальше не могу продвинутся...
Код:
typedef struct node_t
{
   int value;
   struct node_t* next;
}  TNode;
 
typedef struct queue_t
{
   TNode* head;
   TNode* tail;
}  TQueue;
TQueue* Push(TQueue* queue, int value)
{
   TNode* node = (TNode*)malloc(sizeof(TNode));
   node->value = value;
   node->next = NULL;
 
   if (queue->head && queue->tail)
   {
      queue->tail->next = node;
      queue->tail = node;
   }
   else
   {
      queue->head = queue->tail = node;
   }
 
   return queue;
}
//-----------------------------------------------------------------------------
int Pop(TQueue* queue)
{
   int value = 0;
 
   if (queue->head)
   {
      value = queue->head->value;
      queue->head = queue->head->next;
   }
 
   return value;
}
//-----------------------------------------------------------------------------
void Clear(TQueue* queue)
{
    while (queue->head)
    {
        Pop(queue);
    }
 
    queue->head = queue->tail = NULL;
}
//-----------------------------------------------------------------------------
void Print(const TQueue* queue)
{
   const TNode* node = queue->head;
 
   for (; node; node = node->next)
   {
      printf("%d ", node->value);
   }
   printf("\n");
}
Vasya94 вне форума Ответить с цитированием
Старый 05.10.2013, 20:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ясно. С потолка:
Код:
FILE* f=fopen("file","w");
for(int i=0;i<100;i++) fwrite(&i,sizeof(i),1,f);
fclose(f);
f=fopen("file","r");
TQueue* min,max;
for(int i=0,k=0;!feof(f);k++){
 fread(&i,sizeof(i),1,f);
 if(i>50) max=Push(max,k); 
 else min=Push(min,k); 
}
fclose(f);
Print(min); Clear(min);
Print(max);Clear(max);
Это как я понял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с++ очередь zubber94 Помощь студентам 8 25.07.2012 00:01
Очередь С++ vadiprog Помощь студентам 0 24.04.2012 00:48
Очередь в СИ Savelia Помощь студентам 4 12.06.2011 14:56
Очередь Си svetikzo Помощь студентам 0 23.01.2010 10:03
Очередь C++ svetikzo Помощь студентам 2 23.01.2010 09:53