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

Списки, как склеить списки между собой? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Мой алгоритм дешифрует не все http://www.cyberforum.ru/cpp-beginners/thread1478304.html
Здравствуйте, и опять я. Хотел с помощью XOR шифровать большие тексты (свыше 3к символов), но он некорректно справляется с 400-500 символов. Код: #include <string> #include <iostream> #include <fstream> using namespace std; class Encoder
C++ Белые символы Как быстро проверить, состоит ли строчка только из белых символов или там есть что - то ещё? http://www.cyberforum.ru/cpp-beginners/thread1478294.html
Разделить дробное число на 2 части: целая часть числа и его дробная часть C++
Пользователь вводит с клавиатуры сумму в валюте (дробное число). Вывести по отдельности количество Рублей и количество копеек (например, ввести 45.67 рублей - получить и вывести 45 рублей 67 копеек)
C++ Простейшая структура, список
#include <iostream> #include <stdio.h> #include <locale> #include <string.h> using namespace std; struct node { char s ; char jj;
C++ Не работает реализация шифрования http://www.cyberforum.ru/cpp-beginners/thread1478266.html
Помогите , программа не работает , как таковых ошибок нет , но и не шифрует . //Melnik M . V . #include <stdio.h> #include <conio.h> #include <iostream> int main() { setlocale(LC_ALL, "Russian"); char key_on_s;
C++ ОПРАЦЮВАННЯ ФАЙЛОВИХ СТРУКТУР, ВИКОРИСТАННЯ РЯДКІВ 1. Найти в файлі f всі слова, які зліва направо і навпаки читаються однаково і скласти із них новий файл q. 2. Знайти в файлі f всі слова, які містять подвійні літери і скласти з них новий файл q подробнее

Показать сообщение отдельно
Алексей_2012
 Аватар для Алексей_2012
0 / 0 / 1
Регистрация: 26.04.2014
Сообщений: 108
14.06.2015, 22:49     Списки, как склеить списки между собой?
Ребят, привет всем, есть код, в классе которого описаны несколько методов: добавление элемента в список, удаление и просмотр списка, дак вот вопрос, как реализовать метод (или функцию в реализации самой программы, а не в методе класса), в котором:

к общему списку приклеиваются элементы нового, т.е. ввели

список 1
3
4
5
6

список 2
4
5
6

итог
3
4
5
6
4
5
6

При этом список 1 и список 2 существуют как самостоятельные объекты.

Ребят, помогайте, мой мозг заточен под экономику, а сдавать уже послезавтра.

Вот все что есть.

*.h
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
#ifndef PEREGRUZ_H
#define PEREGRUZ_H
#include <iostream>
 
using namespace std;
 
struct node
{
    int data;
    node* next;
};
 
class linklist
{
private:
    node * first;
public:
    linklist() { first = NULL; }
    void additem(int d);
    void show();
    void delet(int n); // функция удаление конкретного элемента из списка
};
 
#endif // PEREGRUZ_H
*.cpp
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
#include "peregruz.h"
 
 
void linklist::additem(int d)
{
    node* newnode = new node; // создаём новый элемент списка
    newnode->data = d; // присваиваем полю data, значение переданное в как аргумент функции
    if(first == NULL) // если элемент первый в списки, то есть first равно NULL
    {
        newnode->next = first; // указателю на следующий элемент, присваиваем значение хранящиеся в указатели first
        first = newnode;       // присваиваем указателю first, значение на новый элемент списка
    }
    else // ели элемент не первый в списке
    {
        node* current = first; // создаём элемент текущей и присвоим ему firts, то есть начало списка
        while(current->next!=NULL) // цикл идёт до тех пор пока указатель элемента не равен значению NULL, то есть до конца списка
            current = current->next;// переходим от узла к узлу
        current->next = newnode; // когда мы достигли конца списка, элемент расположенный в конце, указывает на наш новый элемент
        newnode->next = NULL;    // новый элемент указывает, на NULL, то есть на конец списка
    }
}
 
void linklist::show()
{
    node* current = first;
    while(current)
    {
        cout << current->data << " ";
        current = current->next;
    }
}
 
void linklist::delet(int n) // функция удаления конкретного элемента из списка
{
 
    if (n<=0)
    {
        cout<<"\nError!!\n";
        return;
    };
 
    int count = 1;     // счётчик элементов, начинаем с первого элемента
    node* current = first; // текущий элемент
    node* temp;             // временный элемент
 
    if(n == count)
    {
        first = current ->next;
        current -> next = 0;
        delete current;
    }
    else
    {
        while(count != n) // проходим циклом, пока не дойдём до элемента с искомым номером
        {
            temp = current; // временному присваиваем текущий
            current = current->next; // переход на следующий узел
            count++;
        }
 
        temp->next = current->next; // временный ( то есть элемент, стоящий перед текущим, указывает на элемент идущий после текущего
        delete current; // удаляем текущий
    }
}
консоль
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
#include "peregruz.h"
 
int main()
{
   
 
 
 
    linklist li;
    int chislo=0,count;
    int menu;
 
    do{
        system("cls");
        cout <<"Vvedite colich dobavl in spisok...";
        cin >>count;
        cin.ignore();
 
        while (count>0)
        {
            // cout<<"Vvedite chislo ... ";
 
            //   cin>>chislo;
 
            li.additem(count);
            count--;
        }
 
        cout<<endl;
 
        li.show();
 
        cout <<endl<<"Ykagite No ydal chisla...";
        cin>>count;
        cin.ignore();
 
        li.delet(count);
 
        cout<<endl;
        li.show();
        cout<<"\nExit? 0-yes.";
        cin>>menu;
    }
 
    while (menu!=0);
    cout<<"POKEDA!";
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru