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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
valeriy007
76 / 21 / 6
Регистрация: 27.10.2014
Сообщений: 420
#1

Добавление элемента в список - C++

11.07.2015, 14:24. Просмотров 298. Ответов 1
Метки нет (Все метки)

У меня есть список, пока в нем функции вывода данных print, добавление add и вывод первого Begin() и последнего End() элементов.
Кликните здесь для просмотра всего текста
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
struct Rab
{   
    char *name; 
};
 
struct List{
private:
    Rab elem;
    List *next;
    List *begin = NULL;
    List *end = NULL;
public:
 
    void add(char *x)
    {
        List *add = new List;
        add->elem.name = x;
        add->next = NULL;
        if (!begin)
            begin = add;
        else
            end->next = add;
        end = add;
    }
 
    void print()
    {
        List *iter = begin;
        while (iter)
        {
            std::cout << iter->elem.name << std::endl;
            iter = iter->next;
        }
    }
    
    void Begin()
    {
        std::cout << begin->elem.name << std::endl;
    }
 
    void End()
    {
        std::cout << end->elem.name << std::endl;
    }
 
};

Кликните здесь для просмотра всего текста
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
int main()
{
    setlocale(0, "");
    List myList;
    char clk;
    
    while (1)
    {
        char *a = new char[];
        std::cin >> a;      
        
        myList.add(a);
        
        std::cout << "\n";
        myList.print();
 
        std::cout << "\n";
        myList.Begin();
        myList.End();
 
        std::cout << "Продолжить? y/n";
        clk = (char)_getch();
        system("cls");
        if (clk == 'n')         
            return 0;       
    }
}

Что я хочу:
1. Возможно ли сделать функцию Begin() с именем begin(), если есть уже указатель с таким именем
C++
1
List *begin = NULL;
2. Хотел сделать перегруженную функцию add чтобы можно было добавлять элементы в конец или в начало по желанию пользователя, например
C++
1
2
myList.add(a,myList.End());
myList.add(a,myList.Begin());
И элемент добавлялся соответственно в начало или конец.
Вот пытался
C++
1
2
3
4
void add(char *x, List *y)
    {
        if (y == y->Begin()){}
    }
Но понятно дело что void не может == моему List, а идей пока больше нет(

Добавлено через 27 минут
Попробовал еще так, но не то(
C++
1
2
3
4
5
6
typedef void (*func)();
 
    void add(char *a, func b)
    {
        if (b == Begin());  
    }
*Добавление
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 14:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Добавление элемента в список (C++):

Добавление элемента в список - C++
Spis2* put(Spis2 *current, int info) { Spis2 *temp = new Spis2; temp-&gt;info = info; temp-&gt;next = current; temp-&gt;prev = NULL; ...

Добавление элемента в список по номеру - C++
Помогите, пожалуйста, разобраться, как определить номера элементов односвязного кольцевого списка. Это мне надо, чтобы сделать функцию...

Добавление в список нового элемента - C++
Всем доброе время суток. Мне нужна помощь, есть задание: нужно добавить в список новый элемент, после элемента, совпадающего с ключем x,...

Добавление элемента в двусвязный список - C++
Здравствуйте, нужно вставить элемент в двусвязный список Написала код, но он не работает. tek=first; while(tek) {i++; ...

Добавление элемента в двусвязный список - C++
двусвязный список, как сделать добавление элемента? пока вот что сочинил. /*Список*/ struct list_item_t { list_item_t...

Добавление нового элемента в список - C++
Добавить новый элемент в список после максимального ключа. У меня возникла проблема. Я не могу сдвинуть элемент. Например задаю 23 29...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VIKT0R
8 / 8 / 2
Регистрация: 15.11.2011
Сообщений: 85
11.07.2015, 14:46 #2
Цитата Сообщение от valeriy007 Посмотреть сообщение
1. Возможно ли сделать функцию Begin() с именем begin(), если есть уже указатель с таким именем
Нет, невозможно. Можно, например printBegin().
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2015, 14:46
Привет! Вот еще темы с ответами:

Не работает добавление элемента в список - C++
#include &lt;iostream&gt; using namespace std; class mas { public: int data; mas* next; mas* prev; }; class List

Добавление элемента в линейный список после 1-го, 3-го, 5-го и т.д - C++
Помогите пожалуйста, нужно написать функцию добавления в линейный список заданного элемента после 1-го, 3-го, 5-го и т.д.

Добавление элемента в список после указанного - C++
Добавление нового элемента в список после указанного элемента по значению информационного поля и разбивка списка на два по указанному...

Добавление элемента в список с проверкой уникальности - C++
Всем привет! И сразу же к сути - не могу разобраться с добавлением элемента в список, но так что бы он не повторялся и был на своему мести,...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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