Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาจุดศูนย์กลางของกราฟดาวใน Python


สมมุติว่าเรามีกราฟดาวแบบไม่มีทิศทางหนึ่งกราฟที่มีโหนด n ตัวกำกับอยู่ตั้งแต่ 1 ถึง n อย่างที่เราทราบกันดีว่ากราฟดาวคือกราฟที่มีโหนดกลางหนึ่งโหนดและขอบ n-1 ที่เชื่อมต่อโหนดกลางกับโหนดอื่นทุกโหนด เราต้องหาจุดศูนย์กลางของกราฟดาวที่กำหนด

ดังนั้นหากอินพุตเป็นแบบ

โปรแกรมหาจุดศูนย์กลางของกราฟดาวใน Python

แล้วเอาท์พุตจะเป็น 3 เนื่องจาก 3 อยู่ตรงกลาง

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • เห็นแล้ว :=ชุดใหม่

  • สำหรับแต่ละขอบ (u,v) ในกราฟ ทำ

    • ถ้าคุณอยู่ในสายตาแล้ว

      • คืนคุณ

    • ถ้าเห็น v แล้ว

      • กลับ วี

    • แทรกคุณให้เห็น

    • ใส่ v เข้าไป

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(graph):
   seen = set()

   for u,v in graph:
      if u in seen:
         return u
      if v in seen:
         return v
      seen.add(u)
      seen.add(v)

graph = [(1,3),(2,3),(4,3),(5,3),(6,3)]
print(solve(graph))

อินพุต

[(1,3),(2,3),(4,3),(5,3),(6,3)]

ผลลัพธ์

3