Вставка элемента в линейный односвязный список - C#
Формулировка задачи:
Здравствуйте!
У меня вот такое задание: требуется программа, позволяющая вставлять новый элемент в линейный односвязный список после всех элементов с заданной величиной ключа
код прикреплён
p.s вот с процедурой добавления элемента (с 45): просто посмотрела через отладчик и в строчке 47 постоянно p.key= значению ключа последнего элемента. (если к примеру вводим 1 2 3 4 и постоянно p.key=4)
Может подскажите что не так?
using System; namespace spisok { class MyList { public int key; //ключ public MyList Next; //указатель на след.элемент public MyList() { } public MyList(int key, MyList Next) { this.key = key; this.Next = Next; } } class Program { static void Main(string[] args) { MyList p = null, head = null; //p-вспомогательный указатель int count = 4;//количество элементов в списке //ввод элементов списка Console.WriteLine("Введите ключевые поля для " + count + " элементов списка:"); for (int i = 1; i <= count; i++) { if (i == 1) { head = new MyList(); head.key = Int32.Parse(Console.ReadLine()); head.Next = null; p = head; } else { p.Next = new MyList(); p = p.Next; p.key = Int32.Parse(Console.ReadLine()); p.Next = null; } } MyList addElem = new MyList(0, null);//тот элемент,который мы будем добавлять for (int i = 1; i <= count; ++i) //процедура добавления элемента { if (p.key == 2) //заданная величина ключа = 2 { if (p.Next == null)//если послед.элемент в списке имеет ключ=2 { p.Next = addElem; addElem.Next = null; } else { MyList t = p.Next; p.Next = addElem; addElem.Next = t; } } } } } }
Решение задачи: «Вставка элемента в линейный односвязный список»
textual
Листинг программы
MyList newnode = new MyList(); newnode.key = Int32.Parse(Console.ReadLine()); p = head; while (p.Next != null) { p = p.Next; } p.Next = newnode;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д