Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2019, 16:49   #1
astero
Новичок
Джуниор
 
Регистрация: 17.04.2019
Сообщений: 3
По умолчанию C# Добавления нового элемента в односвязный список каждый раз слева от последнего

Добрый день.
Помогите разобраться.
Как переделать метод Insert_Element() чтобы добавлять новый элемент не справа а слева?
Код:
class Program
    {
        static void Main(string[] args)
        {
        int n;
            OwnList list = new OwnList();
                     n = int.Parse(Console.ReadLine());
                          list.Insert_Element(ref list._current, n);
        }
    }
public class OwnListElem
    {
        public int Value;
        public OwnListElem Next;
        public OwnListElem(OwnListElem next, int value)
        {
            Next = next;
            Value = value;
 
        }
    }
    public class OwnList
    {
        public OwnListElem _head = null;
        public OwnListElem _current = null;
        public OwnList() { }
 
public void Insert_Element(ref OwnListElem current, int value)//вставка последующего элемента
        {
            if (_head == null)
            {
                Insert_First_Element(value);
                _current = _head;
            }
            else
            {
                OwnListElem temp = new OwnListElem(null, value);
                temp.Next = _current.Next;
                _current.Next = temp;
                _current = temp;
            }
            current = _current;
 
        }
public void Insert_First_Element(int value)//вставка первого элемента
            {
                OwnListElem temp = new OwnListElem(null, value);
                OwnList a = new OwnList();
 
                if (_head == null)
                {
                    _head = temp;
                }
                else
                {
                    temp.Next = _head;
                    _head = temp;
                }
            }
    }
astero вне форума Ответить с цитированием
Старый 18.04.2019, 08:48   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

У вас же функция Insert_First_Element уже выполняет это.
Код:
temp._next = _head;
_head = temp;
_current = temp;
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.05.2019, 19:49   #3
astero
Новичок
Джуниор
 
Регистрация: 17.04.2019
Сообщений: 3
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
У вас же функция Insert_First_Element уже выполняет это.
Слева от текущего,то бишь крайнего правого
astero вне форума Ответить с цитированием
Старый 17.05.2019, 18:31   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

храните еще ссылку на предпоследний элемент или считать, что ссылка не next, а prior и работать со списком так, что элемент хранит ссылку не на следующий элемент, а на предыдущий.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка операций добавления нового элемента в динамическом массиве Yavorsky Общие вопросы C/C++ 1 12.10.2018 21:50
Перегрузка операций добавления и удаления нового элемента в динамическом массиве Yavorsky Общие вопросы C/C++ 1 11.10.2018 21:52
Односвязный список, добавление элемента Buserandi Общие вопросы C/C++ 13 27.07.2012 22:29
Необходимо реализовать классы, односвязный список для хранения целых чисел, односвязный список для хранен lineico Помощь студентам 2 09.05.2011 17:45