Односвязный список реализовать с помощью структур - C#
Формулировка задачи:
Здравствуйте . Помогите,пожалуйста, разобраться с односвязным списком . Раньше немного учил С++ и там списки реализовывались с помощью структур . Попытался тоже самое реализовать на С# - не получается.
Объясните , пожалуйста , как хотя бы правильно создавать список и добавлять в него элемент ?
Понимаю, что у каждого узла есть данные и указатель на следующий подобный узел. Только как это всё дело в C# реализовать-то ..
Только не пишите о встроенных функциях для реализации , мне сейчас нужно разобраться как вручную всё это делается.
Буду очень благодарен Вам !!!
class Program { //структура узла public struct Element { public int value;// данные public Element* next;// указатель на следующий элемент списка }*start, *p ;//указатели на начало и текущий элемент static void CreateList(int a) { p = new Element(); //создали элемент p->value = a; //присвоили значение p->next = null; //так как один элемент , то указатель на след.элемент == null start = p; } static void Main(string[] args) { int a; Console.WriteLine("введите значение для 1-го элемента списка:"); a = int.Parse(Console.ReadLine()); CreateList(a); } }
Решение задачи: «Односвязный список реализовать с помощью структур»
textual
Листинг программы
class OwnList { class OwnListElem { public OwnListElem Next { get; set; } public int Value { get; set; } public OwnListElem (OwnListElem next, int value) { Next = next; Value = value; } } private OwnListElem _head = null; private OwnListElem _tail = null; public OwnList() {} public void Add(int value) { OwnListElem temp = new OwnListElem(null, value); if (_head == null) { _head = _tail = temp; _head.Next = _tail; } else { _tail.Next = temp; _tail = temp; } } public void Print() { OwnListElem temp = _head; while(temp != null) { Console.WriteLine(temp.Value); temp = temp.Next; } } } public static void Main(string[] args) { OwnList list = new OwnList(); for (int i = 0; i < 10; i++) { list.Add(i); } list.Print(); Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д