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

Прокомментируйте код работы со списком - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перемещение элементов массива http://www.cyberforum.ru/cpp-beginners/thread598403.html
Переместить однозначные числа в конец массива. При этом порядок следования чисел в группах (однозначные, двухзначные) не должен изменяться.
C++ Переведите код на pascal с C++ Переведите код на pascal с C++ #include <iostream> #include <conio.h> using namespace std; //------------------------------------------------------------------------------ struct Tspisok http://www.cyberforum.ru/cpp-beginners/thread598388.html
числовая таблица C++
Люди добрые помогите еще разок. Я токо начинаю заниматься программированием поэтому трудно ваще что то делать, только самое элементарное (( для вас это ведь легко. Могу заплатить. P.S Интерфейс...
Как исправить ошибку с перегруженным оператором C++
Добрый вечер! суть задания: Необходимо реализовать класс, который умеет хранить данные произвольных типов (int, char, любой другой объект класса - TComplex и CooperBy). error C2593:...
C++ Как возможно реализовать функцию кратных пробелов http://www.cyberforum.ru/cpp-beginners/thread598341.html
Как возможно реализовать такую функцию: Надо поверять каждый кратный 4 элемент строки на пробел, и заменять его на табуляцию, и если предыдущие до этого элемента в строке были пробелы , то и их в...
C++ Уменьшить программу/снизить количество операторов В этой программе описан динамический массив, который сортирует числа по возрастанию. Можно ли как-нибудь уменьшить программу? #include <iostream> #include <conio.h> #include <stdlib.h> using... подробнее

Показать сообщение отдельно
kirkl
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 8

Прокомментируйте код работы со списком - C++

06.06.2012, 20:51. Просмотров 398. Ответов 1
Метки (Все метки)

прокомментируйте пожалуйста буквально каждую строчку.
Сформировать двунаправленный список.Добавить в него элемент с заданным номером.Написать функций для создания списка , печати, добавления элемента, функцию main()
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
#include <iostream>
 
using namespace std;
 
struct list_t
{
    list_t* next;
    list_t* prev;
    int data;
};
 
list_t* list_create(unsigned n)
{
    list_t* root = NULL;
    list_t* prev = NULL;
    
    while(n--)
    {
        list_t* tmp = new list_t;
        cout << ">"; cin >> tmp->data;
        tmp->next = NULL;
 
        if(root)
        {
            tmp->prev = prev;
            prev->next = tmp;
        }
        else
        {
            root = tmp;
            tmp->prev = NULL;
        }
 
        prev = tmp;
    }
 
    return root;
}
 
void list_print(list_t* root)
{
    while(root)
    {
        cout << root->data << endl;
        root = root->next;
    }
}
 
list_t* list_insert(list_t* root, unsigned pos)
{
    list_t* item = root;
 
    while(pos && item->next)
    {
        item = item->next;
        --pos;
    }
    list_t* new_item = new list_t;
    cout << ">"; cin >> new_item->data;
    new_item->next = item;
    
    if(pos>0 && !item->next)
    {
        item->next = new_item;
        new_item->prev = item;
        new_item->next = NULL;
 
        return root;
    }
 
    if(item->prev)
    {
        new_item->prev = item->prev;
        item->prev->next = new_item;
        item->prev = new_item;
    }
    else
    {
        item->prev = new_item;
        new_item->prev = NULL;
        root = new_item;
    }
    return root;
}
 
int main()
{
        int k = 0; cout << "k="; cin >> k;
    list_t* t = list_create(k);
    list_print(t);
    cout << "n="; int n; cin >> n;
    t = list_insert(t,n);
    list_print(t);
 
    system("pause");
    return 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
int** delete_column(int** matrix,unsigned m,unsigned n,unsigned k)
{
    if(k >= n) return matrix;
 
    int** new_m = new int*[m];
    for(int i = 0; i < m; i++)
    {
        new_m[i] = new int[n-1];
        for(int j = 0, new_j = 0; j < n; j++)
        {
            if(j != k)
            {
                new_m[i][new_j] = matrix[i][j];
                new_j++;
            }
            
        }
        delete [] matrix[i];
    }
    
    delete [] matrix;
    return new_m;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.