Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Novikusha
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 3
1

Очередь в списках

12.04.2010, 21:52. Просмотров 714. Ответов 1
Метки нет (Все метки)

нужно в данную очередь вставить структуру. структуру-то я написала, а дальше не могу разобраться, подскажите, что делать, пожалуйста!

Добавлено через 1 минуту
Структура
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include "locale.h"
 
int _tmain(int argc, _TCHAR* argv[])
{   
    setlocale (LC_ALL, "Russian");  
    {
        char name[10];
        int numb;
        float t;
    };  
        struct TRAIN a[4];
        int i, k, f;
        char zn[10];
        for (i=1; i<=4; i++) 
        {
            printf("Введите пункт назначения номер %d", i); //заполнение структуры
            printf("\n");
            scanf ("%s", &a[i].name);
            printf("Введите номер - %d поезда", i);
            printf("\n");
            scanf ("%d", &a[i].numb);
            printf("Введите время отправления, минуту отделите запятой");
            printf("\n");
            scanf ("%f", &a[i].t);
        }
    for (k=1; k<=4-1; k++) //cортировка
    {
        for (i=1; i<=4-k; i++)
        {
            if (a[i].t>a[i+1].t)
            {
                a[0]=a[i];
                a[i]=a[i+1];
                a[i+1]=a[0];
            }
        }
    }
            
    printf("\n");
    printf("\n");
    printf("Назначение номер время отправления");
    printf("\n");
    printf("\n");
    for (i=1; i<=4; i++) //вывод структуры
        {
            printf("%s       %d        %2.2f", a[i].name, a[i].numb, a[i].t);
            printf("\n");
                    
        }
    printf("\n");
    printf("____________________________________________");
    printf("\n");
    printf("Введите пункт назначения");
    printf("\n");
    scanf("%s", &zn);
    k=0;
    for (i=1; i<=4; i++) //вывод поездов с нужным пунктом назначения
    {
        f=strcmp(a[i].name, zn);
        if (f==0)
        {
            k=k+1;
            printf("%s     %d      %2.2f", a[i].name, a[i].numb, a[i].t);
            printf("\n");
        }
    }
    if (k==0) 
        printf("Таких поездов нет!");
        getch();
        return 0;
}

Добавлено через 2 минуты
Очередь
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#define QUEUE struct queue
QUEUE
{  int info;
    QUEUE *next;
 };
 
extern void insert(QUEUE **q, int item);
extern int take_out(QUEUE **q, int *error);
 
void insert(QUEUE **q, int item)
{
     QUEUE *current = *q;
     QUEUE *previous = 0;
     QUEUE *new_node;
 while ( current)
 {
    previous = current;
    current = current -> next;
  }
  new_node = ( QUEUE * ) malloc( sizeof( QUEUE) );
  new_node -> info = item;
  if (previous )
  {new_node -> next = previous -> next;
    previous -> next = new_node;
  }
  else
  {
    *q = new_node;
    (*q) -> next = 0;
  }
 }
 int take_out(QUEUE  **q, int *error )
 {
  int value = 0;
  QUEUE *old_header = *q;
  if (*q)
    { value = old_header -> info;
        *q = (*q) -> next;
        free( old_header );
        *error = 0;
     }
    else
        *error = 1;
  return value;
 }
void main()
{
 int error;
 QUEUE *q1=0, *q2=0;
 insert(&q1, 12);
 insert(&q1, 13);
 insert(&q1, 14);
 insert(&q2, take_out( &q1, &error ));
 insert(&q2, take_out( &q1, &error ));
 insert(&q2, take_out( &q1, &error ));
 printf("\nremove( &q2 ) = %d", take_out(&q2, &error));
 printf("\nremove( &q2 ) = %d", take_out(&q2, &error));
 printf("\nremove( &q2 ) = %d", take_out(&q2, &error));
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2010, 21:52
Ответы с готовыми решениями:

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

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете
Сформировать очередь по файлу целых чисел. Промоделировать очередь в...

Задача на очередь (вывод сообщения, что очередь пуста)
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо...

Очередь, теория. Очередь на шести стеках
Здравствуйте, пытаюсь побольше найти информации про очереди и их применение в...

Ошибка в списках
#include &lt;iostream&gt; #include &lt;list&gt; using namespace std; void main() {...

1
Sekt
157 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 637
12.04.2010, 21:57 2
если некоторые данные идентичный то можете сразу и структуры переганять их в очередь.
или сделать так :
C
1
2
3
4
5
struct Query
{
struct train tr;
// elems  // 
};
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2010, 21:57

Ошибка в списках
В функции сравнения Compare не инициализируется переменная y. Зато такая же...

Немного о списках
Нужно реализовать класс список но я даже не работал со списками а тут надо...

Немного о списках
Помогите разобраться со списками(хотя бы односвязными) Подскажите пример...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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