Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 13
1

В односвязном списке поменять местами элементы, стоящие на четных и нечетных позициях

04.09.2019, 00:11. Показов 1718. Ответов 4
Метки нет (Все метки)

нужно в односвязном списке поменять элементы стоящие на четных и нечетных позициях местами без использования ООП, создания нового списка и стандартной функции swap
1-2-3-4-5-6-7-8-9
должны трансформироваться в
2-1-4-3-6-5-8-7-9
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2019, 00:11
Ответы с готовыми решениями:

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

Поменять местами элементы, стоящие на четных местах, с элементами, стоящими на нечетных
Помогите составить программу. Условие: В заданном одномерном массиве поменять местами соседние...

В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах
В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах,среди...

Поменять местами соседние элементы массива, стоящие на четных местах, с элементами, стоящими на нечетных
Задача на массивы: В заданном одномерном массиве поменять местами соседние элементы, стоящие на...

4
С чаем беда...
Эксперт CЭксперт С++
9145 / 4663 / 1268
Регистрация: 18.10.2014
Сообщений: 10,513
04.09.2019, 02:44 2
Задача неоднозначно поставлена. В списке требование "поменять местами элементы" допускает как минимум две разных интерпретации.
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 13
04.09.2019, 06:32  [ТС] 3
какие 2 варианта интерпретации вы видите?
0
359 / 226 / 120
Регистрация: 25.06.2019
Сообщений: 830
04.09.2019, 07:34 4
Лучший ответ Сообщение было отмечено Keiziz как решение

Решение

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
struct elenent
{
    int n;
    elenent *next;
};
void add(elenent* &list,int n)
{
    elenent *el=new elenent();
    el->n=n;
    el->next=0;
    if(!list) list=el;
    else
    {
        elenent *p;
        for(p=list; p->next; p=p->next);
        p->next=el;
    }
}
void show(elenent* p)
{
    if(p)
    {
        for(; p; p=p->next) cout<<p->n<<" ";
        cout<<endl;
    }
}
void swap(elenent* p,int pos)
{
    for(; p; p=p->next,pos++)
        if(pos%2==0 && p->next)
        {
            int x=p->n;
            p->n=p->next->n;
            p->next->n=x;
        }
}
void main(int argc,char **argv)
{
    elenent *list=0;
    for(int i=1; i<10; i++) add(list,i);
    show(list);
    swap(list,0);
    show(list);
0
С чаем беда...
Эксперт CЭксперт С++
9145 / 4663 / 1268
Регистрация: 18.10.2014
Сообщений: 10,513
04.09.2019, 09:41 5
Цитата Сообщение от Keiziz Посмотреть сообщение
какие 2 варианта интерпретации вы видите?
Обменять местами элементы в любом контейнере можно просто путем обмена содержимого этих элементов в памяти. Но в списковых (ссылочных) структурах данных у вас еще есть принципиально иной метод решения этой задачи: выполнить "перецепку" ссылок между элементами так, чтобы порядок элементов в списке стал другим.

Примерно как в поезде: в первом вагоне - дрова, а во втором вагоне - сахар. Вам сказали сделать так, чтобы стало наоборот. Вы можете разгрузить вагоны и загрузить их наоборот. А можете поступить совсем по-другому: расцепить вагоны и потом сцепить их наоборот.

Вам что именно надо сделать? В условии задачи оговорено? Обычно в таких задачах на списки подразумевается именно "перецепка".
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2019, 09:41

Массив: поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных
В заданном одномерном массиве, поменять местами соседние элементы, стоящие на четных местах, с...

В односвязном списке поменять местами крайние элементы
что есть у меня: #include &lt;iostream&gt; #define N 6 using namespace std; struct Node { int d;...

Массивы: поменять местами соседние элементы, стоящие на четных местах, с элементами ,стоящими на нечетных местах
В заданном одномерном массиве поменять местами соседние элементы ,стоящие на четных местах ,с...

В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах
1)В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с...


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

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

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