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

Прочитать из файла T1 числа и сформировать на их основе связный список - C++

Восстановить пароль Регистрация
 
silencerr
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 11
09.01.2014, 14:08     Прочитать из файла T1 числа и сформировать на их основе связный список #1
В текстовом файле T1 записано несколько чисел. Прочитать из файла T1 числа и сформировать на их основе связный список.
Проблема в формировании связного списка на основе этих чисел(да и вообще я не понимаю о нем ничего). Помогите с этим пунктом задания. Заранее спасибо.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int main ()
{
int str[1000]; int i;
 
FILE *f1;
f1 = fopen("T1.txt","r");
 for(i=0;!feof(f1);i++)
 {
  fscanf (f1,"%d",&str[i]);
  cout<<str[i]<<" "; }
 
 
 
cout<<endl;
fclose (f1);
system("pause");
return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 14:08     Прочитать из файла T1 числа и сформировать на их основе связный список
Посмотрите здесь:

C++ 2-связный список на основе 2х стэков
2-связный список на основе указателей next и pred C++
Список: связный список, в котором информация о книгах сортируется по убыванию стоимости. C++
Связный список (Используя структуру описания даты, построить связный список студентов, сформированный в алфавитном порядке) C++
Связанный список. Создать, записать в связный список последовательность слов,обозначающих месяцы года,заданных пользователем C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
09.01.2014, 15:10     Прочитать из файла T1 числа и сформировать на их основе связный список #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
#include <iostream>
using namespace std;
 
struct node 
{
    int data;
    node * next;
};
// Добавление в список
node * list_add(node * list_tail, int value)
{
    node * p = new node;
 
    p->data = value;
    p->next = NULL;
 
    if(list_tail)
        list_tail->next = p;
 
    list_tail = p;
 
    return list_tail;
}
// Очистка списка
void list_clear(node * list_head)
{
    node * p = list_head;
    while(p)
    {
        list_head = list_head->next;
        delete p;
        p = list_head;
    }
}
// Печать списка
void list_print(node * list_head)
{
    node * p = list_head;
    while(p)
    {
        cout << p->data << endl;
        p = p->next;
    }
}
 
int main ()
{
    // Начало/конец списка
    node * head = NULL, * tail = NULL;
 
    int str[1000];
    int list_count = 0;
    FILE * f1 = fopen("T1.txt", "r");
 
    for(int i = 0; !feof(f1); i++)
    {
        // Считали число
        fscanf(f1, "%d", &str[i]);
        // Добавили в конец списка
        tail = list_add(tail, str[i]);
        list_count++;
        if(list_count == 1)
            head = tail;        
    }
    list_print(head);
 
 
    list_clear(head);
    fclose(f1);
    system("pause");
    return 0;
}
silencerr
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 11
09.01.2014, 19:16  [ТС]     Прочитать из файла T1 числа и сформировать на их основе связный список #3
Спасибо, но возникла ещё 1 проблема в задачи:
Допустим есть файл T2 в котором так же записаны числа. Для каждого числа из файла T2 нужно ответить, встречается ли оно в сформированном списке. Через if не получается(пишет error C2120: 'void' illegal with all types).

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
#include <iostream>
using namespace std;
 
struct node 
{
    int data;
    node * next;
};
// Добавление в список
node * list_add(node * list_tail, int value)
{
    node * p = new node;
 
    p->data = value;
    p->next = NULL;
 
    if(list_tail)
        list_tail->next = p;
 
    list_tail = p;
 
    return list_tail;
}
// Очистка списка
void list_clear(node * list_head)
{
    node * p = list_head;
    while(p)
    {
        list_head = list_head->next;
        delete p;
        p = list_head;
    }
}
// Печать списка
void list_print(node * list_head)
{
    node * p = list_head;
    while(p)
    {
        cout << p->data << endl;
        p = p->next;
    }
}
 
int main ()
{
    // Начало/конец списка
    node * head = NULL, * tail = NULL;
 
    int str[1000]; int str1[1000];
    int list_count = 0;
    FILE * f1 = fopen("T1.txt", "r");
    FILE * f2 = fopen("T2.txt", "r");
    cout<<"VIVOD IZ FAILA T1 : "<<endl; 
    for(int i = 0; !feof(f1); i++)
    {
        // Считали число
        fscanf(f1, "%d", &str[i]);
            cout<<str[i]<<" "
 
        // Добавили в конец списка
    
             ; 
        tail = list_add(tail, str[i]);
        list_count++;
        if(list_count == 1)
            head = tail;        
    }
    cout<<endl<<"SPISOK : "<<endl;
    list_print(head);
 
 
   //list_clear(head);
cout<<endl;
//----------------------------
 
 
cout<<"VIVOD IZ FAILA T2"<<endl;
 for(i = 0; !feof(f2); i++)
    {
        fscanf(f2, "%d", &str1[i]);
        cout<<str1[i]<<endl; }
 
    cout<<endl;
    fclose(f1);
    fclose(f2);
    system("pause");
    return 0;
}
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
09.01.2014, 19:48     Прочитать из файла T1 числа и сформировать на их основе связный список #4
silencerr, переделал под себя, все работает. если устроит пользуйтесь
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
100
101
102
103
104
105
106
107
108
109
110
#include <iostream>
using namespace std;
struct Element
{
   int data;
   Element * Next;
};
 
class List
{
   Element * Head;
   Element * Tail;
   int Count;
 
public:
   List();
   ~List();
   void Add(int);
   void Del();
   void DelAll();
   void Print();
   int Find(int);
};
 
List::List()
{
   Head = Tail = NULL;   
   Count = 0;
}
 
List::~List()
{
   DelAll();
}
 
void List::Add(int data)
{
   Element * temp = new Element;
 
   temp->data = data;
   temp->Next = NULL;
 
   if(Head!=NULL){
        Tail->Next=temp;
        Tail = temp;
   }
 
   else{
       Head=Tail=temp;
   }
}
 
void List::Del()
{
   Element * temp = Head;
   Head = Head->Next;
   delete temp;
}
 
void List::DelAll()
{
   while(Head != 0)
      Del();
}
 
void List::Print()
{
   Element * temp = Head;
   while(temp != 0)
   {
      cout << temp->data << " ";
      temp = temp->Next;
   }
   cout << "\n\n";
}
int List::Find(int n) {
    Element * temp = Head;
    while (temp!=0) 
    {
        if (temp->data==n)
            return 1;
        temp=temp->Next;
    }
    return 0;
}
 
int main(){
    int temp;
    List Num;
    FILE * f1 = fopen("D:\\T1.txt", "r");
    FILE * f2 = fopen("D:\\T2.txt", "r");
    cout<<"VIVOD IZ FAILA T1 : "<<endl; 
    for(int i = 0; !feof(f1); i++)
    {
        fscanf(f1, "%d", &temp);
        Num.Add(temp);
    }
    Num.Print();
    cout<<"VIVOD IZ FAILA T2"<<endl;
     for(int i = 0; !feof(f2); i++)
    {
        fscanf(f2, "%d", &temp);
        if (Num.Find(temp))
            cout<<"Number "<<temp<<" is in file T1!\n";
        else
            cout<<"Number "<<temp<<" is NOT in file T1!\n";
    }
    system("pause");
    return 0;
}
silencerr
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 11
09.01.2014, 20:02  [ТС]     Прочитать из файла T1 числа и сформировать на их основе связный список #5
Да, спасибо большое!
Yandex
Объявления
09.01.2014, 20:02     Прочитать из файла T1 числа и сформировать на их основе связный список
Ответ Создать тему
Опции темы

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