1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Прокомментируйте Пожалуйста Готовую Программу

Тема в разделе "Вопросы новичков и не только", создана пользователем kirkl, 7 июн 2012.

  1. kirkl

    kirkl New Member

    Репутация:
    0
    Регистрация:
    28 апр 2012
    Сообщения:
    4
    Симпатии:
    0
    прокомментируйте пожалуйста буквально каждую строчку.(программа рабочая)
    Сформировать двунаправленный список.Добавить в него элемент с заданным номером.Написать функций для создания списка , печати, добавления элемента, функцию main()

    Код:
    #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;
    }
    и вот эту если можно.
    (Написать функцию для удаления столбца с номером К из динамической матрицы,содержащей целые числа)



    Код:
    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;
    }
     
Загрузка...

Поделиться этой страницей