Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 1 / 0
Регистрация: 09.10.2015
Сообщений: 204

На основе заданных прототипов реализовать функции-члены для пользовательского класса "Односвязный список"

28.02.2016, 03:24. Показов 1023. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Извиняюсь,забыла принт опреедлить
Преподаватель дал прототипы функций ,которые надо определить для односвязного списка,но,начав разбираться в нем,уже погрязла в вопросах.и вот вопросы ,которые накопились
1)как инициализировать например список из 3 элементов(кусок куда если можно)(как создается узел я не понимаю)
2)зачем в моем коде деструктор по умолчанию.препод просто написал,Ничего особо не объясняя
3)напишите пожалуйста пример хотя бы одной функции вместе с инициа нескольких узлов
4)и если есть у кого понятная книга по этой теме-ткните пожалуйста.
Благодарю
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
#include <iostream>
using namespace std;
struct Single_node
{
    int val; // размерность списка
    Single_node *next; //указатель на след
    Single_node(int); //конструктор.он инициал размерность?
    Single_node(){}//незнаю зачем тут пустой конструктор
};
class Single_list
{
private:
    Single_node *head;//указатель на начало
    Single_node *tail;//указатель на конец
public:
    Single_list();// 2 пустых конструктора
    Single_list();// незнаю зачем они
    Single_list(int);//и этот тоже
    bool is_empty(); //пустой или нет
    void add_front(int);//добавить вначало
    int remove_front();//удалить сначала 
    bool find(); //есть или нету
    int get_nth(int); // получить н-тый
    int size();//размер
};
int main()
{
    Single_list list;
    for (int i = 0; i < 5; i++)
    {
        list add_front(i);
        print_slist(list);
    }
    while (!(list is_empty))
    {
        print_slist(list);
        list.remove_front();
    }
}
//должно выводить
//0
//1 0
//2 1 0
//3 2 1 0
//4 3 2 1 0
//4 3 2 1 0
//3 2 1 0
//2 1 0
//1 0
//0
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.02.2016, 03:24
Ответы с готовыми решениями:

Реализовать указанные функции-члены для пользовательского класса "Кольцевой двусвязный список"
Сообственно сабж. У списка два закрытых поля: tail-это узел следующий за &quot;последним&quot;(условно,ибо список -кольцо. в tail-е лежит...

Реализовать перегрузку заданных операторов для пользовательского класса комплексных чисел
Нужно добавить операторы перегрузки для комплексных чисел, но я что-то вообще не догоняю как это сделать. На пикче полное задание. я...

Реализовать перегрузку заданных операторов для пользовательского класса односвязного списка
Народ, помогите пожалуйста сделать это задание. И желательно, программным кодом. Заранее благодарю. Вот само задание: В...

1
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
28.02.2016, 12:01
Элемент списка - объект, хранящий данные (целое число val и ссылку на следующий). Поэтому нужен конструктор. Конструктор по-умолчанию пусть присваивает val значение ноль. val хранит те данные, ради которых создан список и это никак ни его размерность, поскольку val-поле узла (элемента списка). Если список - дом, а узел - квартира, то val-номер квартиры, например.
Два пустых конструктора не бывает (что-то не так переписали). С find(), кстати, тоже напутали - не может быть функции "найти" без указания, что же ищется
Конструктор с одним параметром создает список с одним элементом (который хранит это значение).
Список с 3 элементами можно создать:
а) пустой, потом добавить 3
б) создать с одним и добавить 2.
Поскольку в вашем примере есть только "добавить в начало", первый в списке должен добавляться последним.
Хотя правильнее написать функцию "добавить в конец", т.к. без нее фактически получается не список, а стек.
И уж совсем круто - "добавить по индексу" (первым - индекс=0, последним - индекс=size()) и/или "добавить перед указанным".
Еще можно (но не обязательно) добавить счетчик числа элементов списка. Тогда функция size() просто будет возвращать его значение, а иначе ей придется пробегать по всему списку (впрочем, для учебных задач это допустимо).
Неясно, что означает int get_nth(int) - получить индекс по val или получить val по индексу или что-то еще.

Про списки на форуме много тем (а в интернете - вообще уйма), вот к примеру:Создать односвязный список из структур и вот Односвязный список объектов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2016, 12:01
Помогаю со студенческими работами здесь

Составить односвязный список на основе класса, объекты которого будут формировать этот список
Задание: Составить односвязный список на основе класса, объекты которого будут формировать этот список. В описание класса должны входить...

Составить односвязный список на основе класса, объекты которого будут формировать этот список
Видел на этом форуме программы для данной задачи, но все равно не могу понять их, необходимо что-то попроще. Составить односвязный список...

Составить односвязный список на основе класса, объекты которого будут формировать этот список
Составить односвязный список на основе класса, объекты которого будут формировать этот список. В описание класса должны входить данные...

Составить односвязный список на основе класса Student, объекты которого будут формировать этот список
Составить односвязный список на основе класса, объекты которого будут формировать этот список. В описание класса должны входить данные для...

Составить односвязный список на основе класса
Составить односвязный список на основе класса, объекты которого будут формировать этот список. В описание класса должны входить данные для...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru