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

Односвязные списки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нахождения наименьшего нечетного делителя http://www.cyberforum.ru/cpp-beginners/thread111951.html
Здравтвуйте уважаемые форумчане! Подскажите пожалуйста какие у меня ошибки и недочёты... задача звучит так "Составить функцию для нахождения наименьшего нечетного натурального делителя к(к не...
C++ Шарики Помогите решить вот такую задачку: Несколько (N) шариков небольшого (радиуса r и массой m каждый) движутся внутри квадратной области размерами H*H , абсолютно упруго отскакивая от её стенок и... http://www.cyberforum.ru/cpp-beginners/thread111949.html
C++ Аппроксимация 4(Pi)
Один из быстрых методов подсчета числа Пи основывается на непрерывной дроби Пи = 3+1/(7+1/(15+1/(1+1/(292+1/(1+1/(1+1/(1+1/(2+1/(1+1/(3+1/(1+1/14+…))))))))))). Эта дробь называется правильной...
вычислить произведение второй цифры C++
Постановка задачи:разработать программу реализующую операции целочисленной арифметики( Вычислить про изведение разности первых двух цифр цетырехзнацного числа и младшей цифры этого числа)
C++ Чтение текстового файла и сортировка несколькими алгоритмами http://www.cyberforum.ru/cpp-beginners/thread111904.html
Дорогие программисты, Мне задали домашку про сортировочные алгоритмы. Я уже написал алгоритмы, но из-за того что мало знаком с С++, не знаю как поместить в массив слова из текстового файла, и не...
C++ Дано натуральное число.... Вычислить Дано натуральное число n. Вычислить n_ \ (-1)^k *(k+1) /_ ------------- k=0 k! Как то так... помогите плз! подробнее

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

Односвязные списки - C++

02.04.2010, 13:40. Просмотров 1742. Ответов 8
Метки (Все метки)

Задача: добавить в список 1 узлы, содержащие слова в списке 2, не совпадающие со словами списка 1(линейный список 1 из слов хранится в файле А и список 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
struct node
{
string word;
node *next;
};
 
struct node2
{
string word2;
node2 *next2;
};
 
 
int main()
{
setlocale(LC_CTYPE, "");
ifstream ifp("g:\\12345.txt" , ios::app | ios::out);//чтение из файла
 
 
node *first = NULL, *last, *k, *tmp;
 
// считываем из файла слова и записываем их в список
while(ifp.good())
{
node *tmp = new node;
 
if(!first)
first = tmp;
else
last->next = tmp;
 
string word;
ifp >> word;
 
tmp->word = word;
tmp->next = NULL;
 
last = tmp;
}
 
// выводим на экран список
cout << "Слова в файле:\n";
node *curr = first;
while(curr)
{
cout << curr->word << "\n";
curr = curr->next;
}
cout << endl;
 
//_______________________________________________чтение 2-го файла
node2 *first2 = NULL, *last2, *k2, tmp2;
ifstream ifp2("g:\\123456.txt");//чтение из файла
 
// считываем из файла слова и записываем их в список
while(ifp2.good())
{
node2 *tmp2 = new node2;
 
if(!first2)
first2 = tmp2;
else
last2->next2 = tmp2;
 
string word2;
ifp2 >> word2;
 
tmp2->word2 = word2;
tmp2->next2 = NULL;
 
last2 = tmp2;
}
 
// выводим на экран список
cout << "Слова в файле:\n";
node2 *curr2 = first2;
while(curr2)
{
cout << curr2->word2 << "\n";
curr2 = curr2->next2;
}
cout << endl;
 
//_______добавляем в первый список слова из второго которых нет в первом
 
//_____цикл
    
    k=first;
    k2=first2;
    node *newnode;
    while(k!=NULL)
    {
    int fl=0;
 
    
    while(k2!=NULL)
    {
        if(k2->word2 == k->word)
        {
            fl++;
        }
        k2=k2->next2;
    }
 
    if(fl==0)
    {
        // !!!Добавление элемента из 2-го списка в первый!!!
        node *newnode = new node;
        newnode->next=last;
        last->next=newnode;
        //newnode=k2->word2;
        
    }
    last=last->next;
    }
    cout<< "получим: ";
    first = tmp;
    while(first!=NULL)
    {
        cout<< first->word << "/n";
        curr = curr->next;
    }
    cout<< endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru