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

kirkl

New Member
28.04.2012
4
0
#1
прокомментируйте пожалуйста буквально каждую строчку.(программа рабочая)
Сформировать двунаправленный список.Добавить в него элемент с заданным номером.Написать функций для создания списка , печати, добавления элемента, функцию main()

C++:
#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++:
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;
}