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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2013, 21:51   #1
Teropan231
 
Регистрация: 07.10.2013
Сообщений: 9
По умолчанию заполнить очередь случайными числами(кусок кода есть)

вот у меня есть код. тут у меня функции добавления элементов, я хочу в еще одной функции пользователя заполнить свою очередь рандомом от 1 до 100. Мне это нужно для задания. мое задание "поместить максимальный элемент очереди на первую позицию.".я так понимаю,что очередь мне надо пересобрать. Но для начала нужно хотя бы ее заполнить, по этому прошу у вас помощи. вот кусок кода с самой структурой очереди
Код:
#include<iostream>
#include<stdlib.h>
#include <time.h>
struct queue
{
	int data;
	queue *next;
}*head, *tail, *head_pos, *tail_pos;
void push(queue **head, queue **tail, int data,)
{
	queue *element=new queue;
	
	element->data=data;
	element->next=NULL;
	if(*head==NULL)
		*head=*tail=element;
	else
	{
		(*tail)->next=element;
		*tail=element;
	}
}


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.10.2013 в 09:44.
Teropan231 вне форума Ответить с цитированием
Старый 11.10.2013, 15:28   #2
Nuklon
Форумчанин
 
Аватар для Nuklon
 
Регистрация: 05.04.2012
Сообщений: 134
По умолчанию

Код:
#include <iostream>
using std::cout;


struct tqueue {
   int    val;
   tqueue* next;
};


void push(tqueue** head, tqueue** tail, int val) {
    tqueue* ptr= new tqueue();
    ptr->val   = val;
    ptr->next  = NULL;

    if(*head == NULL)
          *head = *tail = ptr;
    else {
         (*tail)->next = ptr;
         *tail         = ptr;
    }
}


// поместить мaксимальный элемент в начало
void max_first(tqueue** head) {
   tqueue* tmp = *head;
   for(tqueue* iter = *head; iter != NULL; iter = iter->next) {
        if(iter->val > tmp->val)
           tmp = iter;
   }

   int  val = tmp->val;
   tmp->val = (*head)->val;
  (*head)->val = val;
}




int main(void){
   tqueue* head = NULL, *tail = NULL;
   
   //random
   for(int i = 0; i < 100; i++)
       push(&head, &tail, 1 + std::rand()%100);

   max_first(&head);

   tqueue* tmp;
   while(head != NULL){
       cout << head->val << '\n';

       tmp  = head;
       head = head->next;
       delete tmp;
   }
   return 0;
}
Пример работы кода
Nuklon вне форума Ответить с цитированием
Старый 11.10.2013, 22:32   #3
Teropan231
 
Регистрация: 07.10.2013
Сообщений: 9
По умолчанию

Спасибо вам огромное! вы меня спасли)
Teropan231 вне форума Ответить с цитированием
Старый 11.10.2013, 23:46   #4
Teropan231
 
Регистрация: 07.10.2013
Сообщений: 9
По умолчанию

Тут небольшая проблемка. почему-то в вижуал студио не компилируется этот код.
Teropan231 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнить массив из 10 елементов случайными числами SpENCeR C++ Builder 2 24.04.2012 20:51
Заполнить одномерный массив случайными числами. С++ JustKaissy Помощь студентам 7 27.09.2011 11:49
Заполнить массив случайными числами. Fender92 Паскаль, Turbo Pascal, PascalABC.NET 4 19.03.2011 17:05
заполнить массив случайными вещественными числами (C#) _RaWeN_ Общие вопросы C/C++ 2 14.03.2011 19:02
Заполнить массив случайными числами forumu Общие вопросы Delphi 13 03.12.2007 22:11