Team Ai
Apppublic

sanket3280/code-execution

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
graph.js69 linesDownload Raw Back to wrappers
1module.exports = function graphWrapper({ sourceCode, language }) {2  let prefix = '';3  switch (language) {4    case 'JAVASCRIPT_NODE':5      prefix = `6// Graph helpers (JS)7function buildAdjList(n, edges, directed=false, weighted=false){const g=Array.from({length:n},()=>[]);for(const e of edges){if(weighted){const [u,v,w]=e;g[u].push([v,w]);if(!directed)g[v].push([u,w]);}else{const [u,v]=e;g[u].push(v);if(!directed)g[v].push(u);}}return g}8function buildAdjMatrix(n, edges, directed=false){const m=Array.from({length:n},()=>Array.from({length:n},()=>0));for(const [u,v] of edges){m[u][v]=1;if(!directed)m[v][u]=1}return m}9`;10      break;11    case 'PYTHON3':12    case 'PYTHON3_8':13      prefix = `14# Graph helpers (Python)15def build_adj_list(n, edges, directed=False, weighted=False):16    g=[[] for _ in range(n)]17    for e in edges:18        if weighted:19            u,v,w=e20            g[u].append((v,w))21            if not directed:22                g[v].append((u,w))23        else:24            u,v=e25            g[u].append(v)26            if not directed:27                g[v].append(u)28    return g29def build_adj_matrix(n, edges, directed=False):30    m=[[0]*n for _ in range(n)]31    for u,v in edges:32        m[u][v]=133        if not directed:34            m[v][u]=135    return m36`;37      break;38    case 'JAVA':39      prefix = `40// Graph helpers (Java)41class __Graph { static java.util.List<java.util.List<int[]>> adjListW(int n, int[][] edges, boolean directed){ java.util.List<java.util.List<int[]>> g=new java.util.ArrayList<>(); for(int i=0;i<n;i++) g.add(new java.util.ArrayList<>()); for(int[] e: edges){ g.get(e[0]).add(new int[]{e[1], e.length>2?e[2]:1}); if(!directed) g.get(e[1]).add(new int[]{e[0], e.length>2?e[2]:1}); } return g; } static java.util.List<java.util.List<Integer>> adjList(int n, int[][] edges, boolean directed){ java.util.List<java.util.List<Integer>> g=new java.util.ArrayList<>(); for(int i=0;i<n;i++) g.add(new java.util.ArrayList<>()); for(int[] e: edges){ g.get(e[0]).add(e[1]); if(!directed) g.get(e[1]).add(e[0]); } return g; } static int[][] adjMatrix(int n, int[][] edges, boolean directed){ int[][] m=new int[n][n]; for(int[] e: edges){ m[e[0]][e[1]]=1; if(!directed) m[e[1]][e[0]]=1; } return m; } }42`;43      break;44    case 'CPP14':45    case 'CPP':46      prefix = `47// Graph helpers (C++)48inline std::vector<std::vector<int>> __adjList(int n, const std::vector<std::pair<int,int>>& edges, bool directed){ std::vector<std::vector<int>> g(n); for(auto &e: edges){ g[e.first].push_back(e.second); if(!directed) g[e.second].push_back(e.first);} return g; }49`;50      break;51    case 'C':52      prefix = `53/* Graph helpers (C) - user to build structures manually in solutions; minimal stubs omitted */54`;55      break;56    case 'CSHARP':57      prefix = `58// Graph helpers (C#)59static class __Graph { public static System.Collections.Generic.List<System.Collections.Generic.List<int>> AdjList(int n, System.Collections.Generic.IEnumerable<(int,int)> edges, bool directed){ var g=new System.Collections.Generic.List<System.Collections.Generic.List<int>>(n); for(int i=0;i<n;i++) g.Add(new System.Collections.Generic.List<int>()); foreach(var e in edges){ g[e.Item1].Add(e.Item2); if(!directed) g[e.Item2].Add(e.Item1);} return g; } }60`;61      break;62    default:63      return { sourceCode, usedRunner: false };64  }65  return { sourceCode: prefix + sourceCode, usedRunner: false };66};67 68 69