Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 31
1

Перестановка элементов очереди

25.05.2012, 07:13. Показов 793. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. У меня есть задание - Поменять местами первый и последний элементы в очереди.

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

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <clocale>
 
typedef struct sp //Создаем динамическую структуру данных с указателем *next
{
    char inf [100] ; //Очередь
    struct sp *next; //Указатель на следующий элемент
} sp;
 
sp *g,*head,*teil; //Голова и хвост очереди
 
void program()
{
    int kol=1; //счетчик(номера элементов очереди)
    char key; //клавиша события
 
    //Вводим начальный элемент очереди
    printf("Введите элементы стрруктуры: \n");
    head=(sp*) malloc(sizeof(sp)); //создает начальный элемент
    g=head; //g будет указывать на голову очереди
    printf("Введите %i элемент: ",kol);
    scanf("%s",&g->inf); //считываем элемент g который помещаеться в очередь инф
    g->next=0; //Следующему элементу мы присваиваем 0
    //teil->next=0; //Следующему элементу за хвостом мы так же присваиваем 0
    teil=head; //Хвост очереди указывает на ее начало
 
    //Ввод остальных эл-тов структуры
    kol++;
    printf("Введите %i элемент: ",kol);
    g=(sp*) malloc(sizeof(sp));
    scanf("%s",&g->inf);
    g->next=0; 
    teil->next=g; 
    teil=teil->next;
 
    do {
            kol++;
            printf("Введите %i элемент: ",kol);
            g=(sp*) malloc(sizeof(sp));
            scanf("%s",&g->inf);
            g->next=0;
            teil->next=g;
            teil=teil->next;
            printf("Для прекращения ввода нажмите ESC; Для продолжения любую клавишу\n");
            key=getch();
        } while (key!=27);
 
    //Вывод всех введенных элементов
    printf("Вы ввели такие элементы: \n");
    g=head;
    kol=0;
 
    while (g!=0)
        {
            kol++;
            printf("Эллемент %i=%s: \n",kol,g->inf);
            g=g->next;
        }
 
    getch();
}
 
void zamena()
{
    char *tmp; //временный массив символов
 
    //Перезапись очереди
    g=head;
    while (g->next != NULL) //Пока следующий элемент не равен 0
        {
            if (g->next->next == NULL) //Если третий от головы элемент равен нулю то
                {
                    strcpy(tmp,g->inf); //Копирует первый элемент в тмп
                    strcpy(g->inf,head->inf); //Копирует 
                    strcpy(head->inf,tmp);
                }
            g=g->next; //Указывает на следующий элемент
        }
 
    //Вывод результата
    g=head;
 
    int kol=1;
 
    printf("\nРезультат: ");
    while (g!=NULL)
        {
            printf("\n%i-й элемент равен:%s",kol,g->inf);
            kol++;
            g=g->next;
        }
    getch();
}
 
void cleen() //Очищаем всю очередь
{
    g=head;
    while (g != NULL)
        {
            free(g);
            g=g->next;
        }
}
 
void main()
{
    setlocale(LC_ALL, "Russian"); 
    program();
    zamena();
    cleen();
}
В коде, где собственно идет перезапись очереди я и намудрила. Буду рада, если кто-то мне поможет.

Добавлено через 59 минут
Где же вы, добрые люди?

Добавлено через 7 часов 16 минут
Системный ап
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2012, 07:13
Ответы с готовыми решениями:

Перестановка элементов очереди
Нужна ваша помочь ,задача такая ребят: Написать процедуру перестановки максимального и...

Разработать программу формирования очереди, содержащей целые числа, и упорядочивания по возрастанию элементов в этой очереди.
Доброе всем время суток! Помогите пожалуйста! Разработать программу формирования очереди,...

Перестановка элементов массива
Преобразовать массив таким образом, чтобы в его первой половине располагались элементы, стоящие на...

Перестановка элементов массива
Подскажите пожалуйста, как переставить элементы массива в указанного по указанный!!!

0
25.05.2012, 07:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2012, 07:13
Помогаю со студенческими работами здесь

Перестановка элементов матрицы
Перевернуть задом-наперёд элементы допомежной диагонали квадратной матрицы.

перестановка элементов массива
задача такая, нужно сгенерировать массив(тип данных float), прочитав первый элемент и шаг...

Перестановка элементов массива
Здравствуйте. Есть три массива: b = {2, 3, 4, 1, 5}; a2 = {2, 1, 3, 5, 4}; a = {5, 3, 2, 4,...

Перестановка элементов в массиве
Помогите с задачкой: Дан размер массива =100 Диапазон значений от -50 до +50 Во всех...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru