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

Односвязный список.Сортировка перестановкой указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Завершение после условия http://www.cyberforum.ru/cpp-beginners/thread1078676.html
Допустим ------- Инициализация Решение Условие(Решение =0) Нет решения Ну а тут решение если решение !=0 ------ Если условие подтвердилось,как мне закончить программу,а не продолжать следующие решение при решение != 0?
C++ Написать программу, в которой предусмотреть класс для организации обработки символьной строки. Помогите решить задачку на зачет... Зачет в 19-00 - боюсь сама не успею разобраться с классами так что бы решить задачку.. условие: Написать программу, в которой предусмотреть класс для организации обработки символьной строки. Внутри класса реализовать два конструктора: 1-й конструктор должен обеспечивать ввод строки с клавиатуры; 2-й конструктор должен формировать символьную строку c помощью... http://www.cyberforum.ru/cpp-beginners/thread1078664.html
Переход от под меню к основному меню C++
Не могу сделать что-бы был переход от под меню к основному меню PS если что не ругайтесь Добавлено через 45 секунд Не могу сделать что-бы был переход от под меню к основному меню PS если что не ругайтесь вот код
C++ Удаление строки strtok
Здравствуйте, дорогие друзья. Передо мной задача - удалить часть строки при помощи функции strtok. Но как это сделать - ?? Допустим, есть строка BCHNG IDLE 293 . Из неё нужно убрать слово IDLE Надеюсь, вы поможете мне решить эту задачу. #include "stdafx.h" #include <iostream> #include <fstream> #include <string>
C++ Если указатель хранит адрес ячейки памяти, на которую он указывает, то почему тогда в моем экспериментальном коде такой результат? http://www.cyberforum.ru/cpp-beginners/thread1078654.html
Добрый день! Вот второй день разбираюсь с указателями и ссылками, и всё равно не могу заполнить пробелы. Объясните, пожалуйста. Если указатель хранит адрес ячейки памяти, на которую он указывает, то почему тогда в моем экспериментальном коде такой результат? Заранее спасибо! #include <stdio.h> #include <iostream> #define N 5 void main(void) { int p = 4; int *pointer;
C++ Операции присваивания Как можно проиллюстрировать возможности операций присваивания на примере программы? подробнее

Показать сообщение отдельно
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66

Односвязный список.Сортировка перестановкой указателей - C++

22.01.2014, 17:56. Просмотров 272. Ответов 0
Метки (Все метки)

Здравствуйте,помогите с сортировкой элементов по возрастанию,пытался организовать пузырька-не получилось,методом выборки-тоже ничего не вышло(.Массив не использовать,а только перестановку указателей на элементы.Спасибо.Вот часть программы без сортировки.
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
115
116
117
118
119
120
121
#include <iostream>
using namespace std;
 
struct foot
{
    int mesto;
    foot *next;
};
 
void menu ()
{
    cout<<endl<<"\nViberite nomer deistviya";
    cout<<endl<<"1.Zapolnit' tyrnirnuy tablicy";
    cout<<endl<<"2.Sortirovat' elementi tyrnirnuy tablici ";
    cout<<endl<<"3.Pokazat' tyrnirnuy tablicy";
    cout<<endl<<"4.Ydalit' elementi tyrnirnuy tablici";
    cout<<endl<<"5.Vihod\n";
 
}
 
void add(foot ** first, int m )
{
    if ((*first)==NULL)
    {
        *first = new foot();
        (*first)->mesto = m;
        (*first)->next=NULL;
    }
    else
 {
       foot *adr = *first;
       while (adr->next)
       {
           adr=adr->next;
       }
       adr->next=new foot();
       adr=adr->next;
       adr->mesto=m;
    }
}
 
void show(foot *first)
{
 while (first!=NULL)
 {
  cout << endl << first->mesto;
  first = first->next;
 }
}
 
 void del(foot** first, int m)
{
    foot *ptmp = *first;
    int cntr = 0;
    while(ptmp!=NULL)
    {
        if(ptmp->mesto == m)
        {
            if(cntr==0)
            {
                *first = (*first)->next;
                delete ptmp;
                ptmp = 0;
            }
            else
            {
                ptmp = *first;
                while(--cntr!=0)
                    ptmp = ptmp->next;
                foot* pdel = ptmp->next;
                ptmp->next = pdel->next;
                delete pdel;
                pdel = 0;
            }
            break;
        }
        ptmp = ptmp->next;
        ++cntr;
    }
}
 
void sor(foot* first)
               {
              
               
       
               }
        
 
 int main ()
 {
    int val, opt;
    foot *first = NULL;
    while(true)
    {
 
        menu();
        cin>> opt;
        switch (opt)
        {
        case 1:
         cout<<"Element dlya dobavleniya: ";
         cin>> val;
         add(&first, val);
         break;
        case 2:
            sor(first);
            break;
        case 3:
         show(first);
         break;
        case 4:
         cout<<"Element dlya udaleniya: ";
         cin>> val;
         del (&first, val);
         break;
        case 5:
            return 0;
        }
    }
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru