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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить сумму элементов строки http://www.cyberforum.ru/cpp-beginners/thread1038102.html
Дан двумерный массив действительных чисел. Определить сумму элементов строки, в которой расположен элемент с наименьшим значением. //Двумерный массив задавать как динамический. Добавлено через 56 минут Помогите.
C++ Найти сумму всех целых чисел от а до b Пожалуйста, подскажите как правильно оформить в с++ такие задачи 1)Найти сумму всех целых чисел от а до b (значения а и b вводятся с клавиатуры; b>a) 2) Рассчитать значения z для значений а, равных 2,3,... 17: z=3,5t-7t+16, где t=4а http://www.cyberforum.ru/cpp-beginners/thread1038086.html
Подскажите в условных операторах C++
подскажите пожалуйста Даны три вещественных числа. Вывести на экран: а) те из них, которые принадлежат интервалу (а-b), б)те из них, которые принадлежат интервалу (c-d)
Построить таблицу функции y C++
1. Решить с помощью подпрограммы - функции Даны две квадратные матрицы A, B 3-го порядка. Построить таблицу функции y = cx2 + d при х меняющемся от 0 до 1 с шагом 0.1, где с = sp(A), d = sp(B). (sp(A) - след матрицы А - сумма элементов главной диагонали).
C++ составить программу вычисления значения z при любых значениях x и y http://www.cyberforum.ru/cpp-beginners/thread1038077.html
Подскажите как составить программу вычисления значения z при любых значениях x и y:
C++ Двумерные массивы (квадратная матрица) Осуществить циклический сдвиг элементов квадратной матрицы размером М Х N вправо на k элементов таким образом: элементы первой строки сдвигаются в последний столбец сверху вниз, из него – в последнюю строку справа налево, из нее – в первый столбец снизу вверх, из него – в первую строку; для остальных элементов – аналогично. Вывод матрица (код): #include <cstdlib> #include <iostream>... подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
12.12.2013, 11:18     Односвязный список.Функция удаления
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <iostream>
#include <cstdlib>
using namespace std;
 
struct foot
{
    foot() : next(0){}
    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))
    {
        *first = new foot();
        (*first)->mesto = m;
    }
    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)
 {
  cout << endl << first->mesto;
  first = first->next;
 }
}
 
 void del(foot** first, int m)
{
    foot* ptmp = *first;
    int cntr = 0;
    while(ptmp)
    {
        if(ptmp->mesto == m)
        {
            if(!cntr)
            {
                *first = (*first)->next;
                delete ptmp;
                ptmp = 0;
            }
            else
            {
                ptmp = *first;
                while(--cntr)
                    ptmp = ptmp->next;
                foot* pdel = ptmp->next;
                ptmp->next = pdel->next;
                delete pdel;
                pdel = 0;
            }
            break;
        }
        ptmp = ptmp->next;
        ++cntr;
    }
}
 
void sor(foot* first)
{
    if(first && first->next)
    {
        foot* const pf = first;
        int cntr = 0;
        while(first)
        {
            ++cntr;
            first = first->next;
            //std::cout << "cntr: " << cntr << '\n';
        }
        foot* *arr = new foot*[cntr];
        first = pf;
        for(int i = 0; first; ++i)
        {
            arr[i] = first;
            //std::cout << (i) << ' ' << arr[i]->mesto << '\n';
            first = first->next;
 
        }
        int i, j, tmp;
        for(i = 0; i < cntr; ++i)
        {
            tmp = arr[i]->mesto;
            //std::cout << "tmp: " << tmp << '\n';
            for(j = i - 1; j >= 0 && arr[j]->mesto > tmp; --j)
                arr[j+1]->mesto = arr[j]->mesto;
            arr[j+1]->mesto = tmp;
            //std::cout << "arr[j+1]->mesto: " << arr[j+1]->mesto << '\n';
        }
    }
}
 
 int main ()
 {
    int val, opt;
    foot *first = 0;
    while(true)
    {
        system("cls");
        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;
        }
        system("pause");
    }
 }
 
Текущее время: 06:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru