ช่วยอธิบายโค้ดหน่อยครับไม่ต้องทุกบรรทัดก็ได้เอาสำคัญๆ

// แยก Circular Linked List  OK แล้ว  v 1.o

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


public class recnode
{
    public double Data;  // ก  สัมพันธ์กับที่  ข
    public recnode Link;
}


public class LinkedList
{
    public recnode First;
    public recnode Last;
    public recnode ref1;
    public recnode ref2;

    public void AddToList(double x)  //  ข   ระวังใช้  parameter  เป็น double เพราะว่า field เก็บข้อมูลเป็น double ดูที่  ก
    {
        recnode node = new recnode();
        node.Data = x;
        node.Link = null;

        if (First == null)
        {
            node.Link = node;
        }
        else
        {
            node.Link = First.Link;
            First.Link = node;
        }
        First = node; //First ขยับไปอยู่ที่ตัวล่าสุดตลอด
    }
  
    public void DisplayAll()
    {
        recnode temp = First;
        do
        {
            Console.WriteLine(temp.Data); //เป็นการนำข้อมูลไปแสดงผลทางจอภาพ
            temp = temp.Link;
        }
        while (temp != First);
    }

    public void Displaysprit1()
    {
        recnode temp = ref2;
        do
        {
            Console.WriteLine(temp.Data); //เป็นการนำข้อมูลไปแสดงผลทางจอภาพ
            temp = temp.Link;
        }
        while (temp != ref2);
    }

    public void Displaysprit2()
    {
        recnode temp = ref1;
        do
        {
            Console.WriteLine(temp.Data); //เป็นการนำข้อมูลไปแสดงผลทางจอภาพ
            temp = temp.Link;
        }
        while (temp != ref1);
    }

    public void spritNode()  // แสดงเฉพาะ node ที่ต้องการคือ  x  ที่ส่งมา
    {
        {
             ref1 = First;
             ref2 = ref1.Link;

             recnode temp = ref2.Link;
        
                    temp = ref2.Link;
                    ref2.Link = ref1.Link;

                    ref1.Link = temp;
                
                    return;
                }
            }
        }

class Program
{
    static void Main(string[] args)
    {
        LinkedList slink = new LinkedList();
        slink.AddToList(12);
        slink.AddToList(25);
        slink.AddToList(31);
        slink.AddToList(47);
        slink.AddToList(56);
        slink.AddToList(63);
        slink.AddToList(72);    
        slink.DisplayAll();
        Console.WriteLine("\n\n  !!!!!!!!!!!!! sprit Circular1  !!!!!!!!!!!!!!!!!!!!!\n\n");
  
        slink.spritNode();
        
        slink.Displaysprit1();
        Console.WriteLine("\n\n  !!!!!!!!!!!!! sprit  Circular2 !!!!!!!!!!!!!!!!!!!!!\n\n");
        Console.WriteLine("\n\n  !!!!!!!!!!!!! sprit2 Node  !!!!!!!!!!!!!!!!!!!!!\n\n");

        slink.Displaysprit2();
    
        Console.ReadLine();
    }
}
    
รบกวนช่วยคอมเม้นอธิบายโค้ดไว้ข้างหลังให้หน่อยครับ จะส่งแล้วววTT
เป็นคนไม่รู้เรื่องโค้ดเลยจะง่ายหรือยากก็ไม่เข้าใจอ่าาาครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่