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

Поиск элемента списка Студентов с идеальной массой тела - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ std::string и двойной слеш http://www.cyberforum.ru/cpp-beginners/thread151844.html
Вопрос достаточно прост в примитивной программе: #include <iostream> #include <string> using namespace std; int main() { string s("C:\Users\"); return 0; } при компиляции возникают ошибки
C++ Повторение цикла программы Как сделать чтобы в конце программы вализило типа :ещё раз? да нет или повторить? да нет помогите=)я вообще сишный нуб))) http://www.cyberforum.ru/cpp-beginners/thread151833.html
Возможно ли заполнить трехмерный массив с использованием меньшего кол-ва циклов? C++
Добрый день. Требуется заполнить трехмерный массив следующим образом: 1 слой - единицами, 2 слой - двойками, 3 слой - тройками. Делаю так: int b1; for(int k=0;k<sizeof(b1)/sizeof(b1);k++) {
Поиск элементов в действительной матрице C++
1)дана действительная матрица mxn.найти сумму наибольших значений элементов её строк. 2)дана действительная квадратная матрица порядка 2n.получить новую матрицу, переставляя её блоки размером nxn;...
C++ Интерфейс к DLL http://www.cyberforum.ru/cpp-beginners/thread151760.html
Здравствуйте. Есть такая ситуация: В файле 1.cpp описаны функции одного типа. В файле 2.cpp описаны функции на другую тему. Как написать файл 3.cpp, так чтобы при компиляции его как dll были...
C++ Выведение всех перестановок Драсте, я вот все время писал на паскале и мне с трудом дается переход на c++. Не могу сделать и простых вещей, просто не разбираюсь в синтаксисе. Вот например есть задача: вывести все перестановки... подробнее

Показать сообщение отдельно
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
06.07.2010, 16:39
Цитата Сообщение от ArniLand Посмотреть сообщение
я к примеру не знаю и не догадываюсь зачем создавать указатели на предыдущий и следующий элементы
чтобы знать какой за каким идет элемент, и чтобы с текущего можно было сдвинуться вперед или назад.
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
List::~List()//деструктор
    {
        Human *tmp;//временный указатель
        while(count>0)//пока есть элементы списка
        {
            tmp=first->get_next();// берем у первого элемента ссылку на следующий элемент и присваиваем его tmp
            delete first;//удаляем первый
            first=tmp;//первым становится следующий
            count--;//уменьшаем количество элементов на 1, и так по кругу :)
        }
    }
    List::List()
    {
        first=NULL;//нет ни первого ни последнего, элементов 0
        last=NULL;
        count=0;
    }
    void List::add(char* fio, int height, double weight)//добавление
    {
        Human *el= new Human(fio,height,weight);//создаем элемент который добавим в список
        if(!first)//если это первый элемент
            {first=el;}//назначаем его первым
        else//иначе
            {
                last->set_next(el);//последнему элементу устанавливаем что следующий будет el - который добавляем
                el->set_prev(last);//для элемента добавления устанавливаем, что текущий последний элемент наш предыдущий
            }
            last=el;//теперь последним является добавленный элемент
            count++;//+1 элемент.
    }
    void List::del(int pos, int num)//удаление, принимает позицию и количество элементов
    {
        if(pos+num<=count)
        {
        Human *tmp, *tmp2, *kill;
        int cpos=0;
        if(pos==0)
        {
        while(cpos<num)
        {
            tmp=first->get_next();
            delete first;
            first=tmp;
            first->set_prev(NULL);
            count--;
            cpos++;
        }
        }
        else
        {
        tmp=first;
        while(cpos<=pos)
        {
            cpos++;
            if(cpos==pos)
            {
                tmp2=tmp;
                for(int i=0;i<=num;i++)
                {
                    kill=tmp2;
                    tmp2=tmp2->get_next();
                    tmp2->set_prev(tmp);
                    if(i)delete kill;
                }
                tmp->set_next(tmp2);
                break;
            }
            tmp=tmp->get_next();
        }
        count-=num;
        }
        }
    }
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru