Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Anna992
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 3
#1

Заполнить очередь рандомом(начало я написала) - C++

10.10.2013, 22:29. Просмотров 695. Ответов 4
Метки нет (Все метки)

Буду очень благодарна за помощь. Вот у меня есть код. тут у меня функции добавления элементов, я хочу в еще одной функции пользователя заполнить свою очередь рандомом от 1 до 100. Мне это нужно для задания. мое задание "поместить максимальный элемент очереди на первую позицию.".я так понимаю,что очередь мне надо пересобрать. Но для начала нужно хотя бы ее заполнить, по этому прошу у вас помощи. вот кусок кода с самой структурой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#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;
    }
}
void pop(queue ** head)
{
    *head=(*head)->next;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 22:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить очередь рандомом(начало я написала) (C++):

Создать stl очередь, заполнить ее случайным образом и отсортировать - C++
вопрос в заголовке, заранее спасибо.

Заполнить массив случайными числами и добавить элемент в начало - C++
Помогите с двумя программками. 1. Сформировать динамический одномерный массив, заполнить его случайными числами и добавить элемент в...

Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец - C++
Здравствуйте! имеется задание: создать очередь с приоритетом (у каждого элемента свой приоритет). Элементы с наивысшим приоритетом ставятся...

Заполнить очередь 8 случайными числами из интервала [0;50]. Найти среднее арифметическое четных чисел - C++
Если возможно офрмить через функции void...((Help me(

Задача по STL (Создать объект-контейнер, очередь с приоритетом, заполнить ее данными, тип char) - C++
Помогите,пожалуйста, заранее спасибо)) Вот задание: 1. Создать объект-контейнер, очередь с приоритетом, заполнить ее данными, тип...

Сформировать динамический двумерный массив, заполнить его случайными числа-ми и вывести на экран монитора. Добавить строку в начало матрицы - C++
Помогите на завтра сделать лабу 2.Сформировать динамический двумерный массив, заполнить его случайными числа-ми и вывести на экран...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 22:39 #2
Вопрос 1. Вы написали реализацию очереди (включая функцию ее заполнения), но не можете простым циклом добавлять в нее рандомное число?
Вопрос 2. (точнее замечание). Очередь нельзя "пересобрать". Она на то и очередь, что в нее кто первый "зашел", тот первый и выходит.
"поместить максимальный элемент очереди на первую позицию." А точно так звучит задание, а не: "создается контейнер и заполняется элементами, которые в качестве данных сберегают уникальные числа диапазоном от 1 до 100. Поместить максимальный элемент очереди на первую позицию."?
Anna992
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 3
10.10.2013, 22:48  [ТС] #3
Мне надо просто заполнить рандомом от 1 до 100, Я знаю как просто работает рандом и могу его написать. Я не знаю, как правильно указатели расставить ,чтобы передать значение. Мне нужно только это. Остальное я уже знаю как делать и сделаю. Проблема только в моем неработающем рандоме. Как правильно передать значение "а" элементам моей очереди. Вот это единственное что меня интересует. Помогите пожалуйста с этим.
C++
1
2
3
4
5
6
7
8
9
10
11
12
 void random(queue **head, queue **tail, int data)
{
 
     int a;
   srand(time(NULL));
   
   for(int i = 1; i < 100; i++)
   {
      a = 1 + rand() % 100;
   }
 
}
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 23:08 #4
Цитата Сообщение от Anna992 Посмотреть сообщение
Как правильно передать значение "а" элементам моей очереди.
Цитата Сообщение от Anna992 Посмотреть сообщение
тут у меня функции добавления элементов,
Бинго?

Добавлено через 11 минут
А вообще я бы сделал так (если очередь уже реализована вместе с функцией добавление элементов).
1. Написать цикл for по i от 100 до 1 с шагом -1.
2. В цикле if (rand() % 2), то enqueue(i);
В итоге полчим сортированную очередь, в которой максимальный элемент на 1-й позиции.
Anna992
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 3
11.10.2013, 22:25  [ТС] #5
Я тут написала нечто ужасное. Помогите исправить, если тут хоть что-то правильно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
#include<stdlib.h>
#include <time.h>
using namespace std;
 
struct qitem {
  struct qitem *next, *prev;
  int data;
};  
struct queue {
  struct qitem *first, *last;
};  
void spisok( qitem **first,  qitem **last, qitem **next, qitem **prev,int N )
{
    
struct queue my_q = {0, 0};
struct qitem *add_head(struct queue *, struct qitem *),
             *add_tail(struct queue *, struct qitem *),
             *remove(struct queue *, struct qitem *),
             *find_max(struct queue *),
             *make_item(int);
cout <<"vvedit N";
cin >> N;
for (int i = 0; i < N; i++)// заполним очередь 
   add_tail(&my_q, make_item((rand() % 100) + 1));
add_head(&my_q, remove(&my_q, find_max(&my_q)));
cout <<&my_q<<endl;
}
int main()
{
    
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2013, 22:25
Привет! Вот еще темы с ответами:

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) - C++
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете - C++
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент времени происходит одно из событий:...

Непонятки с рандомом - C++
Не могу понять из-за чего рандом в классе повторяется. Есть такой код генерации пароля... class Pas { string symbols; ...

Операции с рандомом - C++
В общем ситуация такая, нужно написать в консоле &quot;Шар судьбы&quot;, возникла проблема с определением рандомного ответа. Не пойму как его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.10.2013, 22:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru