0 / 0 / 2
Регистрация: 05.10.2015
Сообщений: 19
1

Перегрузить операцию "+" для добавления элемента в начало списка

02.05.2016, 19:50. Показов 481. Ответов 2
Метки нет (Все метки)

Здравствуйте.Столкнулся с такой вот проблемой. Нужно перегрузить операцию "+" для добавления елемента (в данном случае числа) в начало списка. Код прилагается. Так как сделал, не работает, а любые махинации с объектом в главной функции (list+3 к примеру) ни к чему не приводят.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace List_operators
{
    class Program
    {
        static void Main(string[] args)
        {
           int nnm;
            MyList list = new MyList();
            Console.WriteLine("Начальный список: ");
            list.printList();
            Console.WriteLine("Enter numb");
            nnm=Convert.ToInt32(Console.ReadLine());
            
            list.printList();
            Console.ReadLine();
        }
    }
 
    class MyList
    {
       
        public Node Head;
        
        public class Node
        {
            public int Data;
            public Node Next;
        }
 
       
        public void Add()
        {
            Node newNode = new Node();
            Console.WriteLine("Введите добавляемое число:");
            newNode.Data = int.Parse(Console.ReadLine());
            if (Head != null)
            {
                Node helpNode = Head;
                while (helpNode.Next != null) helpNode = helpNode.Next;
                helpNode.Next = newNode;
            }
            else
            {
                Head = newNode;
            }
        }
        public void Add_f()
        {
            Node newNode = new Node();
            Console.WriteLine("Введите добавляемое число:");
            newNode.Data = int.Parse(Console.ReadLine());
            newNode.Next = Head;
            Head = newNode;
        }
        public static MyList operator +(MyList list)
        {
            list.Add_f();
            return list;
        }
        public void printList()
        {
            Node helpNode = Head;
            while (helpNode != null)
            {
                Console.WriteLine(helpNode.Data);
                helpNode = helpNode.Next;
            }
        }
        
        public MyList()
        {
            for (int i = 0; i < 5; i++) Add();
        }
    } 
}
Спасибо
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2016, 19:50
Ответы с готовыми решениями:

Создать класс "прямоугольник" и перегрузить операцию отношения "равно"
Помогите решить задачу: Создать класс &quot;прямоугольник&quot; и перегрузить операцию отношения равно (==)....

Перегрузить операцию ++ для добавления одной секунды
2) Для класса class TIme { int min, sec; ..... ...

Разработать класс относительно которого можно перегрузить операцию "*"
Ребят помогите разработать класс относительно которого можно перегрузить операцию * заранее спс))...

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1....

2
972 / 867 / 349
Регистрация: 26.04.2012
Сообщений: 2,647
03.05.2016, 04:55 2
awashwinter, у вас тут вообще что-то странное делается..

Во-первых, ввод/вывод с консоли в методах добавления/удаления элементов... такого быть не должно, с таким подходом можно и в main было все написать.
Во-вторых, если это List, то логично было бы реализовывать какие-то интерфейсы для коллекций, IList и IEnumerable, к примеру.
В третьих, что-то то действие, какое вы пытаетесь присвоить оператору +, выглядит как-то противоестественно. Что вы с чем хотите складывать? Добавлять Node в List? А возвращать что? Новый лист? Ссылку на старый с добавленным элементом? Как-то это все выглядит притянутым за уши.
0
0 / 0 / 2
Регистрация: 05.10.2015
Сообщений: 19
04.05.2016, 18:26  [ТС] 3
EvilFromHell,
Цитата Сообщение от EvilFromHell Посмотреть сообщение
Добавлять Node в List? А возвращать что? Новый лист? Ссылку на старый с добавленным элементом?
Добавлять Node в List.Ссылку на старый с новым елементом.

Добавлено через 42 секунды
EvilFromHell, согласен, что противоестественно. Но так сказали))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2016, 18:26

"Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка
Здравствуйте! Возникла проблема с программой. Тема: &quot;Сортировка двусвязного списка путем исключения...

Написать программу для добавления поля gr "Гражданство" в таблицу kadr.dbf и заполнить ее значением "Рф"
Написать программу для добавления поля gr &quot;Гражданство&quot; в таблицу kadr.dbf и заполнить ее значением...

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и...

Outlook: как задать "начало для письма" и чтобы был "прикреплен" соответствующий флаг
Доброго времени суток. В почте Outlook 2010, есть поле &quot;Состояние отметки&quot; - это Флаги. Если к...


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

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

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