sanket3280/code-execution
0
1module.exports = function queueWrapper({ sourceCode, language }) {2 let prefix = '';3 switch (language) {4 case 'JAVASCRIPT_NODE':5 prefix = `6// Queue helper (JS)7class __Queue{constructor(){this.a=[];this.h=0}enqueue(x){this.a.push(x)}dequeue(){return this.h<this.a.length?this.a[this.h++]:undefined}isEmpty(){return this.h>=this.a.length}size(){return this.a.length-this.h}peek(){return this.h<this.a.length?this.a[this.h]:undefined}}8`;9 break;10 case 'PYTHON3':11 case 'PYTHON3_8':12 prefix = `13# Queue helper (Python)14from collections import deque as __deque15class __Queue:16 def __init__(self):17 self.q = __deque()18 def enqueue(self, x):19 self.q.append(x)20 def dequeue(self):21 return self.q.popleft() if self.q else None22 def is_empty(self):23 return len(self.q) == 024 def size(self):25 return len(self.q)26 def peek(self):27 return self.q[0] if self.q else None28`;29 break;30 case 'JAVA':31 prefix = `32// Queue helper (Java)33class __Queue { java.util.ArrayDeque<Integer> q = new java.util.ArrayDeque<>(); void enqueue(int x){q.add(x);} int dequeue(){return q.remove();} boolean isEmpty(){return q.isEmpty();} int size(){return q.size();} Integer peek(){return q.peek();} }34`;35 break;36 case 'CPP14':37 case 'CPP':38 prefix = `39// Queue helper (C++)40struct __Queue { std::deque<int> q; void enqueue(int x){q.push_back(x);} int dequeue(){int v=q.front(); q.pop_front(); return v;} bool isEmpty(){return q.empty();} int size(){return (int)q.size();} int peek(){return q.front();} };41`;42 break;43 case 'C':44 prefix = `45/* Queue helper (C) - simple ring buffer */46typedef struct { int a[10005]; int h,t; } __Queue; void __queue_init(__Queue* q){q->h=q->t=0;} void __queue_enqueue(__Queue* q,int x){q->a[q->t++]=x;} int __queue_dequeue(__Queue* q){return q->a[q->h++];} int __queue_empty(__Queue* q){return q->h==q->t;} int __queue_size(__Queue* q){return q->t-q->h;} int __queue_peek(__Queue* q){return q->a[q->h];}47`;48 break;49 case 'CSHARP':50 prefix = `51// Queue helper (C#)52class __Queue { System.Collections.Generic.Queue<int> q = new System.Collections.Generic.Queue<int>(); public void Enqueue(int x)=>q.Enqueue(x); public int Dequeue()=>q.Dequeue(); public bool IsEmpty()=>q.Count==0; public int Size()=>q.Count; public int Peek()=>q.Peek(); }53`;54 break;55 default:56 return { sourceCode, usedRunner: false };57 }58 return { sourceCode: prefix + sourceCode, usedRunner: false };59};60 61 62 