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

Разреженные матрицы - C++

Восстановить пароль Регистрация
 
Barabash
2 / 2 / 0
Регистрация: 29.11.2012
Сообщений: 9
30.09.2013, 20:57     Разреженные матрицы #1
Здравствуйте, прошу помощи, какие -нибудь примеры, которые могут натолкнуть хотя бы на правильное решение поставленной задачи. Из файла необходимо считать разреженную матрицу, каждое значение которой представлено 3 мя числами 1-ое номер строки, 2-е номер столбца и соотв 3е значение самого элемента. Ее необходимо представить в виде циклического списка. Я понимаю, что надо "пройтись" по файлу и с каждыми тремя значениями добавлять один элемент в структуру. Но я не имею ни малейшего представления как это все реализовать на С++..=(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2013, 20:57     Разреженные матрицы
Посмотрите здесь:

Разреженные матрицы C++
C++ Разреженные матрицы
Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии матрицы C++
Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В C++
Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент C++
Разреженные матрицы C++
C++ Вычесть из элементов первого столбца матрицы значение максимального элемента матрицы
C++ Найти количество элементов матрицы, которые совпадают с элементами другой матрицы
C++ Преобразование матрицы (удалить из матрицы столбец с наибольшей по модулю суммой элементов)
Разреженные матрицы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2013, 02:00     Разреженные матрицы #2
Вот сишный код циклического списка. Подумайте, как его можно переделать под вашу задачу (и на С++). Сделайте свою структуру, читайте из файла в поля структуры, добавляйте структуру в список.
Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <stdlib.h>
 
void add_string(); // добавление строки в список
void show_list();  // вывод списка
void delete_list(); // удаление списка
 
#define N  256  // N - 1 - максимальное количество символов в строке
 
struct node
{
   char str[N];
   struct node *next;
};
 
struct node *last;
 
int main()
{
    last  = NULL;
        
        char ch = 'y';
        while (1)
        {
                printf("Add the string? (y/n): ");
                scanf("%c", &ch);
                getchar();
                
                if (ch == 'y') 
                        add_string();
                else break;
        }
        if (last != NULL) 
        {
                printf("The list of successfully created! Show the list? (y/n)");
                scanf("%c", &ch);
                getchar();
                if (ch == 'y')
                        show_list();
        }
        else printf("The list is not created!\n");
 
        delete_list();
        
        printf("Out!");
        getchar();
        return 0;
}
 
void add_string()
{
        struct node *add = (struct node*)malloc(sizeof(struct node));
        
        printf("Input the string (maximum of 255 characters): ");
        gets(add ->str);
        
        if (last == NULL)
        {
                last = add;
                add ->next = add;
        }
    else
        {
                add ->next = last ->next;
                last ->next = add;
                last = add;
    }
}
 
void show_list()
{
        if (last == NULL) printf("List is empty!\n");
        else
        {
                struct node *cur = last;
                while (1)
                {
                        printf("%s\n", cur ->str);
                        cur = cur ->next;
                        if (cur == last) break;
                }
        }
} 
 
void delete_list()
{
        if (last != NULL)
        {
                struct node *temp;
                struct node *cur = last;
                while (1)
                {
                        temp = cur ->next;
                        free(cur);
                        cur = temp;
                        if (cur == last) break;
                }
        }
}
Yandex
Объявления
01.10.2013, 02:00     Разреженные матрицы
Ответ Создать тему
Опции темы

Текущее время: 01:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru