Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 56

Смена значения элемента в двунаправленном списке

16.06.2014, 15:59. Показов 761. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть двунаправленный список вот такого вида:
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
class Objects
{
    public string Name;
    public int Birthday;
    public int Month;
 
    public Objects NextEl { get; set; }
    public Objects PrevEl { get; set; }
 
    public string getName() { return Name; }
    public void setName(string Name) { this.Name = Name; }
    public int getBirthday() { return Birthday; }
    public void setBirthday(int Birthday) { this.Birthday = Birthday; }
    public int getMonth() { return Month; }
    public void setMonth(int Month) { this.Month = Month; }
 
}
 
class Line
{
    public Line()
    {
        Objects Head = null;
        Objects Tail = null;
        quant = 0;
    }
    private Objects Head;
    private Objects Tail;
    private int quant=0;
 
    public int S;
}
public void AddElementHT()
    {
        Objects NewEl = new Objects();
        Objects NewEl1 = new Objects();
        Objects NewEl2 = new Objects();
        Objects NewEl3 = new Objects();
 
        Console.WriteLine("Enter Name");
        NewEl1.setName(Console.ReadLine());
        Console.WriteLine("Enter Birthday");
        NewEl1.setBirthday(Convert.ToInt32(Console.ReadLine()));
        Console.WriteLine("Enter Month");
        NewEl1.setMonth(Convert.ToInt32(Console.ReadLine()));
        Console.WriteLine();
 
        int k = new int();
        k = 0;
 
        while (k == 0)
        {
            try
            {
                Console.WriteLine("Adding element to head - enter '1'");
                Console.WriteLine("Adding element to tail - enter '2'");
                Console.WriteLine("Adding element to middle - enter '3'");
                S = (Convert.ToInt32(Console.ReadLine()));
 
                if (S < 1 || S > 3) throw new IndexOutOfRangeException();
                else k = 1;
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("Error!Enter value from 1 to 3");
                Console.WriteLine();
            }
        }
 
        if (S == 1)
        {
            if (Head == null) 
            {
                Head = NewEl1;
                NewEl1.NextEl = null;
                NewEl1.PrevEl = null;
                quant++;
            }
            else
            {
                NewEl2 = Head;
                NewEl1.NextEl = NewEl2;
                NewEl1.PrevEl = null;
                Head = NewEl1;
                NewEl2.PrevEl = NewEl1;
                quant++;
            }
            Console.WriteLine("Successfully added to head!");
        }
        if (S == 2)
        {
            if (Head == null)
            {
                Head = NewEl1;
                NewEl1.NextEl = null;
                NewEl1.PrevEl = null;
                quant++;
            }
            else
            {
                NewEl2 = Head;
                while (NewEl2.NextEl != null)
                    NewEl2 = NewEl2.NextEl;
                NewEl2.NextEl = NewEl1;
                NewEl1.PrevEl = NewEl2;
                NewEl1.NextEl = null;
                Tail = NewEl1;
                quant++;
            }
            Console.WriteLine("Successfully added to tail!");
}
Нужно создать метод который будет менять значение N-го элемента. Помогите реализовать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.06.2014, 15:59
Ответы с готовыми решениями:

Сортировка в двунаправленном списке
ШАБЛОН КЛАССА #include &lt;iostream&gt; using namespace std; template &lt;typename T&gt; class List { struct...

Программа основанная на двунаправленном списке.
Доброго времени суток ув. форумчане. Среда с++, прога написана на вижуале 6. Возникла проблема с программой. Когда свичер выбирает пункт...

В двунаправленном неупорядоченном списке удалить элемент с максимальным значением
В двунаправленном неупорядоченном списке удалить элемент с максимальным значением.

2
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
16.06.2014, 17:02
nostalex, вот такая реализация устроит?
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace DEQ_Implementation
{
    public class DEQ<T>:IEnumerable<T>
    {
        //Внутреннее хранилище
        private LinkedList<T> innerList;
 
        //Конструктор
        public DEQ()
        { innerList = new LinkedList<T>(); }
 
        //Метод добавления в начало DEQ
        public void PushFront(T arg) 
        { innerList.AddFirst(arg); }
 
        //Метод добавления в конец DEQ
        public void PushBack(T arg)
        { innerList.AddLast(arg); }
 
        //Метод извлечения с конца DEQ
        public T PopBack()
        {
            T arg = innerList.Last<T>();
            innerList.RemoveLast();
            return arg;
            
        }
 
        //Метод извлечение с начала DEQ
        public T PopFront()
        {
            T arg = innerList.First<T>();
            innerList.RemoveFirst();
            return arg;
        }
 
        //Метод очистки DEQ
        public void Clear()
        { innerList.Clear(); }
 
        //Свойство количества элементов DEQ
        public int Count
        { get { return innerList.Count; } }
 
        //Индексатор DEQ (readonly)
        public T this[int index]
        {
            get
            {
                if (index >= innerList.Count)
                    throw new IndexOutOfRangeException("Элемент отсутствует в указанной позиции!");
                else
                    return innerList.ElementAt(index);
            }
        }
        //Enumerator    
        public IEnumerator<T> GetEnumerator()
        {
            return innerList.GetEnumerator();
        }
        //Enumerator  
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return innerList.GetEnumerator();
        }
    }
}
0
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 56
16.06.2014, 18:02  [ТС]
Нужно создать свой список(без List-a).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.06.2014, 18:02
Помогаю со студенческими работами здесь

Найти в двунаправленном списке числа, и переместить их в начало списка в заданном порядке
найты в списке числа и переместить их в начало списка в заданном порядке. двунапрямленые списки

Определить в двунаправленном списке количество элементов, у которых соседи справа и слева отрицательны
Реализация линейного списка и основных алгоритмов его обработки Определить в двунаправленном списке количество элементов, у которых...

Выбор значения в списке в зависимости от элемента, по которому кликнули
Доброго дня всем, возникла такая задача, помогите разобраться как лучше сделать, есть несколько div блоков допустим 5, кликаю по одному...

Добавление элемента после элемента с заданным ключом в однонаправленном списке
Здравствуйте! У меня неправильно работает функция insert, которая должна добавлять элемент после элемента с заданным ключом (key1). ...

Словарь, где значения - это список. Как менять значения в списке?
Задача составить турнирную таблицу по входным данным. В приведеном куске кода, должно добавиться по одному очку в команды...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru