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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2015, 10:30   #1
Ena75
Новичок
Джуниор
 
Регистрация: 13.04.2015
Сообщений: 3
По умолчанию Присоединение Циклической Последовательности

Добрый день!
Помогите пожалуйста с задачей на списки.
Уже объявлен частичный класс CList с открытыми свойствами char Data и CList Next. Из объектов CList можно образовывать циклические списки так, что ссылка Next указывает на следующий элемент списка. Последний элемент списка всегда ссылается на первый элемент.
Код:
partial class CList  {
        public char Data { get; set; }
        public CList Next { get; set; }
    }
Объявите другой частичный класс СList, который содержит конструктор с двумя параметрами и открытый метод AddList (CList other) который добавляет в последовательность this все элементы другой циклической последовательности other.
Ena75 вне форума Ответить с цитированием
Старый 13.04.2015, 10:33   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Чем помочь-то? Что непонятно в задании?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.04.2015, 11:11   #3
Ena75
Новичок
Джуниор
 
Регистрация: 13.04.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Чем помочь-то? Что непонятно в задании?
У меня возникает проблема именно с реализацией алгоритма.
Код:
partial class CList
    {
        public char Data { get; set; }
        public CList Next { get; set; }
    }

    partial class CList
    {
        public CList(char data, CList next)
        {
            this.Next = next;
            this.Data = data;
        }

        public void AddList(CList other)
        {
            CList list2 = other;
            CList list1 = this;

            CList firstNode = this;
            firstNode.Next = null;

            CList firstNode2 = other;
            firstNode2.Next = null;

            for (; list1.Next != firstNode; list1 = list1.Next)
                ;
            list1.Next = null;

            for (; list2.Next != firstNode2; list2 = list2.Next)
                ;
            list2.Next = null;

            for (; list1.Next != null; list1 = list1.Next)
                ;
            list1.Next = list2;

            for (; list1.Next != null; list1 = list1.Next)
                ;
            list1.Next = list1;
        }
    }
Вот что мне удалось построить но из - за неопытности в данной теме, код конечно же отказывается работать.

Последний раз редактировалось Ena75; 13.04.2015 в 11:19.
Ena75 вне форума Ответить с цитированием
Старый 13.04.2015, 12:39   #4
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Цитата:
Вот что мне удалось построить но из - за неопытности в данной теме, код конечно же отказывается работать.
У вас Два класса имеют одинаковое название.

А вы вообще читаете сообщения компилятора? Он же всё подробно рассказывает - что не так и где исправить.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 13.04.2015, 18:27   #5
Ena75
Новичок
Джуниор
 
Регистрация: 13.04.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
У вас Два класса имеют одинаковое название.

А вы вообще читаете сообщения компилятора? Он же всё подробно рассказывает - что не так и где исправить.
Читал, еще и как читал)
Компилятор не на что не ругается. Вывод у меня получается - зацикленный последний элемент(
Ena75 вне форума Ответить с цитированием
Старый 13.04.2015, 18:53   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 13.04.2015 в 18:57.
Alex11223 вне форума Ответить с цитированием
Старый 13.04.2015, 20:03   #7
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Когда обрываете кольцо вы зануляете Next, и тем самым теряете голову списка. Сначала сохраните в переменную указатель на голову, а потом уже занулите Next предыщущего элемента. Будет проще, без всяких циклов.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присоединение DLL к стороннему процессу. owl1n C# (си шарп) 12 08.04.2012 18:37
присоединение и замена столбика hitch1 SQL, базы данных 5 29.11.2009 12:39
Присоединение 2 компов Lis000iq Компьютерное железо 6 05.11.2009 14:08
Присоединение звука и изображения [MI_nor] Общие вопросы C/C++ 2 15.03.2009 13:47