Односвязный список реализовать с помощью структур - 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);
           
        }
    }
Объясните , пожалуйста , как хотя бы правильно создавать список и добавлять в него элемент ? Понимаю, что у каждого узла есть данные и указатель на следующий подобный узел. Только как это всё дело в C# реализовать-то .. Только не пишите о встроенных функциях для реализации , мне сейчас нужно разобраться как вручную всё это делается. Буду очень благодарен Вам !!!

Решение задачи: «Односвязный список реализовать с помощью структур»

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();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы