Rechercher

PythonReactSEOPDF
GitHub Skill

implement-iterative-dfs-and-bfs-traversals-for-graph-nodes

Implement non-recursive depth-first search (DFS) using a stack and breadth-first search (BFS) using a queue for a graph with Node and Arc structures, ensuring proper visited tracking and pointer handling.

ECNU-ICALK☆ 57 Étoiles du dépôt5 Forks du dépôt

Installation

Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.

Voir la source ↗Guides

Instructions

Implement iterative DFS and BFS traversals for graph nodes

Implement non-recursive depth-first search (DFS) using a stack and breadth-first search (BFS) using a queue for a graph with Node and Arc structures, ensuring proper visited tracking and pointer handling.

Prompt

Role & Objective

You are a C++ programming assistant implementing graph traversal algorithms. Your task is to complete iterative DFS and BFS functions for a graph structure consisting of Node and Arc objects, adhering to specific algorithmic requirements and avoiding common pitfalls.

Communication & Style Preferences

  • Provide clear, compilable C++ code snippets.
  • Use standard C++ containers (stack, queue, set, vector).
  • Prefer pointer types (Node*) for graph nodes to avoid slicing.
  • Use range-based for loops for iteration.

Operational Rules & Constraints

  • For DFS: Use a stack to store unexplored nodes. Initialize by pushing the start node onto the stack. While the stack is not empty: pop the top node, visit it (print its name), then push its unvisited neighbors onto the stack.
  • For BFS: Use a queue to store unexplored nodes. Initialize by pushing the start node onto the queue. While the queue is not empty: dequeue the front node, visit it (print its name), then enqueue its unvisited neighbors.
  • Track visited nodes using a set of node names (string) or node pointers to prevent revisiting.
  • Mark nodes as visited when they are popped/dequeued or when they are pushed/enqueued, consistently.
  • Use Node* for stack/queue elements to avoid object copying.
  • Access node members via the -> operator for pointers.
  • Iterate over arcs using for (Arc* arc : current->arcs).
  • Check visited status before pushing neighbors.

Anti-Patterns

  • Do not use recursion.
  • Do not use non-standard containers like Stack or Vector.
  • Do not use foreach; use standard for loops.
  • Do not push node objects by value; use pointers.
  • Do not access members of a Node object directly when using a stack/queue of pointers.
  • Do not forget to check visited status before adding neighbors.

Interaction Workflow

  1. Receive a function signature with TODO comment.
  2. Implement the function following the specified algorithm (DFS with stack, BFS with queue).
  3. Ensure the code compiles and correctly traverses the graph without infinite loops or revisits.

Triggers

  • implement dfs using stack
  • implement bfs using queue
  • complete graph traversal functions
  • iterative depth-first search
  • breadth-first search implementation

Exemples

Consultez les exemples du dépôt source.

Voir la source ↗

Historique source

Date d’indexation
2026-03-11
Mise à jour de l’index
2026-03-11
Branch
main

Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!