Skip to content

Topological Sort in Go#581

Merged
Pradeepsingh61 merged 1 commit intoPradeepsingh61:mainfrom
Shubham-Khetan-2005:topo
Oct 10, 2025
Merged

Topological Sort in Go#581
Pradeepsingh61 merged 1 commit intoPradeepsingh61:mainfrom
Shubham-Khetan-2005:topo

Conversation

@Shubham-Khetan-2005
Copy link
Copy Markdown
Contributor

Add Topological Sort (Kahn's Algorithm) in Go

Added an implementation of Topological Sort for Directed Acyclic Graphs (DAGs). This version uses Kahn's algorithm, a BFS-based approach that correctly identifies and handles cycles. A key feature is its deterministic output; when multiple nodes are available to be added to the sort, it prioritizes them based on their insertion order using a min-heap.

Features 🚀

Provides a linear ordering of vertices such that for every directed edge from vertex u to vertex v, u comes before v in the ordering.

Implements Kahn's algorithm using a queue (specifically, a min-heap) of zero-in-degree nodes.

Guarantees deterministic results by breaking ties based on the order in which nodes were first added to the graph.

Includes built-in cycle detection: returns nil if the graph is not a DAG.

Comes with a test suite covering simple DAGs, graphs with cycles, and disconnected components.

Complexity Analysis 📊

Time Complexity

O(V+E), as each vertex and edge is processed a constant number of times.

Space Complexity

O(V+E) to store the graph's adjacency list, in-degree counts, and the queue.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 8, 2025

🎉 Welcome to Hacktoberfest 2025, @Shubham-Khetan-2005! 🎃

Thank you for your first contribution to our DSA repository! Here's what happens next:

🔍 Automatic Checks

  • Code Validation: Passed
  • 🧪 Compilation Tests: Passed

📋 Next Steps

🎯 Great job! Your code compiled successfully. Maintainers @Karanjot786 and @Pradeepsingh61 will review your PR soon.

🎁 What You Get

  • 🏆 Hacktoberfest Credit: This PR counts toward your 6 PR goal for exclusive T-shirt + Tree!
  • 🌟 Hall of Fame: You'll be featured in our contributors list
  • 📚 Learning: Code review feedback from experienced developers

💡 Tips for Success

  • Follow our Contributing Guidelines
  • Add comments explaining your algorithm
  • Include time/space complexity analysis
  • Test your code before submitting

Welcome to the community! 🚀

@github-actions github-actions Bot requested a review from Karanjot786 October 8, 2025 17:11
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 8, 2025

🤖 Automated PR Status

🔍 Code Validation

Passed - File naming and structure look good!

🧪 Compilation Tests

Passed - All code compiles successfully!

📋 Overall Status

🎉 Ready for Review - Your PR has passed all automated checks!
👥 Maintainers have been notified for review.


This comment was generated automatically. Checks will re-run when you push new commits.

@Pradeepsingh61 Pradeepsingh61 merged commit 6bd007f into Pradeepsingh61:main Oct 10, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants