// แยก Circular Linked List แบบหลอกแสดง
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 void AddToList(double x) // ข ระวังใช้ parameter เป็น double เพราะว่า field เก็บข้อมูลเป็น double ดูที่ ก
{
recnode node = new recnode();
node.Data = x;
if (First == null)
{
First = node;
}
else
{
Last.Link = node;
}
Last = node; //Last ขยับไปอยู่ที่ตัวล่าสุดตลอด
}
public void DisplayAll()
{
recnode temp = First;
while (temp != null)
{
Console.WriteLine(temp.Data); //เป็นการนำข้อมูลไปแสดงผลทางจอภาพ
temp = temp.Link;
}
}
public void Positionnode(double m) //แสดงค่าทั้งหมดจากโหนดที่อินเสริช
{
recnode temp = First;
while(temp!=null){
if(temp.Data == m){
while(temp != First){
Console.WriteLine(temp.Data);
temp = temp.Link;
} return;
}
temp = temp.Link;
}
}
public void subnode(double x)
{
recnode temp = First;
while (temp.Data != x)
{
Console.WriteLine(temp.Data);
temp = temp.Link;
}
Console.WriteLine(" ");
while (temp != null)
{
if (temp.Data == x)
{
while(temp != null){
Console.WriteLine(temp.Data);
temp = temp.Link;
}
break;
}
}
}
public void subnumnode(double m)
{
recnode temp = First;
Console.WriteLine("------------- Subnode -------------");
while (temp != null)
{
if(temp.Data!=m){
Console.WriteLine(temp.Data);
temp = temp.Link;
}
}
Console.WriteLine("------------- ----------------- -------------");
while(temp.Link != null){
if(temp.Data ==m){
while(temp.Link!=null){
Console.WriteLine(temp.Data);
temp = temp.Link;
}
}
temp = temp.Link;
}
Console.WriteLine("------------- -------------------- -------------");
}
public void InsertNode(double k , double m) // แสดงเฉพาะ node ที่ต้องการคือ x ที่ส่งมา
{
{
recnode temp = First;
recnode node = new recnode();
node.Data = k;
node.Link = null;
while (temp != null)
{
if (m == temp.Data) //ถ้า x มีค่าเท่ากับ temp.Data ให้ทำเงื่อนไขดังนี้
{
node.Link = temp.Link;
temp.Link = node;
Console.WriteLine("\n node is inserted ");
Positionnode(m); //ส่งค่าเข้าไปในฟังชั่น Position เพื่อนคนหาโหนดที่แสดงและแสดงต่อจากนั้น
return;
}
else//ถ้าไม่ใหเทำดังนี้
temp = temp.Link;
Last = node;
if (temp == First)
{
Console.WriteLine("No Insert Node");
temp = null;
}
}
}
}
}
class Program
{
static void Main(string[] args)
{
LinkedList slink = new LinkedList();
slink.AddToList(72);
slink.AddToList(63);
slink.AddToList(56);
slink.AddToList(47);
slink.AddToList(31);
slink.AddToList(25);
slink.AddToList(12);
slink.DisplayAll();
Console.WriteLine("\n\n !!!!!!!!!!!!! Displayall !!!!!!!!!!!!!!!!!!!!!\n\n");
slink.subnode(47);
Console.ReadLine();
}
}
**รบกวนคอมเม้นอธิบายไว้ข้างหลังให้หน่อยนะครับ**
ช่วยหน่อยนะครับใกล้จะส่งแล้วววTT
ขอบคุณครับ
ช่วยอธิบายโค้ดหน่อยครับไม่เข้าใจอย่างมาก
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 void AddToList(double x) // ข ระวังใช้ parameter เป็น double เพราะว่า field เก็บข้อมูลเป็น double ดูที่ ก
{
recnode node = new recnode();
node.Data = x;
if (First == null)
{
First = node;
}
else
{
Last.Link = node;
}
Last = node; //Last ขยับไปอยู่ที่ตัวล่าสุดตลอด
}
public void DisplayAll()
{
recnode temp = First;
while (temp != null)
{
Console.WriteLine(temp.Data); //เป็นการนำข้อมูลไปแสดงผลทางจอภาพ
temp = temp.Link;
}
}
public void Positionnode(double m) //แสดงค่าทั้งหมดจากโหนดที่อินเสริช
{
recnode temp = First;
while(temp!=null){
if(temp.Data == m){
while(temp != First){
Console.WriteLine(temp.Data);
temp = temp.Link;
} return;
}
temp = temp.Link;
}
}
public void subnode(double x)
{
recnode temp = First;
while (temp.Data != x)
{
Console.WriteLine(temp.Data);
temp = temp.Link;
}
Console.WriteLine(" ");
while (temp != null)
{
if (temp.Data == x)
{
while(temp != null){
Console.WriteLine(temp.Data);
temp = temp.Link;
}
break;
}
}
}
public void subnumnode(double m)
{
recnode temp = First;
Console.WriteLine("------------- Subnode -------------");
while (temp != null)
{
if(temp.Data!=m){
Console.WriteLine(temp.Data);
temp = temp.Link;
}
}
Console.WriteLine("------------- ----------------- -------------");
while(temp.Link != null){
if(temp.Data ==m){
while(temp.Link!=null){
Console.WriteLine(temp.Data);
temp = temp.Link;
}
}
temp = temp.Link;
}
Console.WriteLine("------------- -------------------- -------------");
}
public void InsertNode(double k , double m) // แสดงเฉพาะ node ที่ต้องการคือ x ที่ส่งมา
{
{
recnode temp = First;
recnode node = new recnode();
node.Data = k;
node.Link = null;
while (temp != null)
{
if (m == temp.Data) //ถ้า x มีค่าเท่ากับ temp.Data ให้ทำเงื่อนไขดังนี้
{
node.Link = temp.Link;
temp.Link = node;
Console.WriteLine("\n node is inserted ");
Positionnode(m); //ส่งค่าเข้าไปในฟังชั่น Position เพื่อนคนหาโหนดที่แสดงและแสดงต่อจากนั้น
return;
}
else//ถ้าไม่ใหเทำดังนี้
temp = temp.Link;
Last = node;
if (temp == First)
{
Console.WriteLine("No Insert Node");
temp = null;
}
}
}
}
}
class Program
{
static void Main(string[] args)
{
LinkedList slink = new LinkedList();
slink.AddToList(72);
slink.AddToList(63);
slink.AddToList(56);
slink.AddToList(47);
slink.AddToList(31);
slink.AddToList(25);
slink.AddToList(12);
slink.DisplayAll();
Console.WriteLine("\n\n !!!!!!!!!!!!! Displayall !!!!!!!!!!!!!!!!!!!!!\n\n");
slink.subnode(47);
Console.ReadLine();
}
}
**รบกวนคอมเม้นอธิบายไว้ข้างหลังให้หน่อยนะครับ**
ช่วยหน่อยนะครับใกล้จะส่งแล้วววTT
ขอบคุณครับ