Search
 
SCRIPT & CODE EXAMPLE
 

CPP

queue

 printElements() {

      let currentNode = this.front;
      let output ='';

      while (currentNode) {
     output = ` ${output}${currentNode.value} ->  ` ;

          currentNode = currentNode.next;
      }
      console.log(`${output}null`);
      return true
  }
}

//if you find this answer is useful ,
//upvote ⇑⇑ , so can the others benefit also . @mohammad alshraideh ( ͡~ ͜ʖ ͡°)
Comment

queue

dequeue() {
    const item = this.elements[this.head];
    delete this.elements[this.head];
    this.head++;
    return item;
  }
Comment

queue

"""Linear Queue
Queue is a First In - First Out (FIFO) data structure much like a real queue
	- The below is a simple implementation of a Linear Queue

Check out the source for more info!
"""

class LQ:
    def __init__(self):
        self.q = []
    
    def enq(self, data): # enqueue
        self.q.append(data)
        
    def deq(self): #dequeue
        if self.q:
            return self.q.pop(0)
        return "Empty!"
    
    def peek(self):
        if self.q:
            return self.q[0]
        return "Empty!"
    
    def size(self):
        return len(self.q)
    
    def display(self):
        return self.q

# Test
from random import randrange
def LQ_Test(LQ):
    # Create random list
    lst = [randrange(10, 100) for _ in range(10)]
    print(f"List: {lst}")
    
    # Create Empty LQ
    LQ = LQ()
    print(f"LQ: {LQ.display()}",
          f"Size: {LQ.size()}",
          f"Front: {LQ.peek()}",
          sep = " | ", end = "

")
    
    # Put items into LQ
    for item in lst: 
        LQ.enq(item)
    print(f"Front: {LQ.peek()}",
          f"LQ: {LQ.display()}",
          sep = " | ", end = "

")
    
    # Remove items from LQ
    for _ in range(len(lst)): 
        print(f"Deq: {LQ.deq()}", 
              f"Front: {LQ.peek()}",
              f"Size: {LQ.size()}", 
              f"LQ: {LQ.display()}",
              sep = " | ")
LQ_tester(LQ)
Comment

Queue

#include <iostream>
#include <queue>

using namespace std;

int main() {

  // create a queue of string
  queue<string> animals;

  // push elements into the queue
  animals.push("Cat");
  animals.push("Dog");
  
  cout << "Queue: ";

  // print elements of queue
  // loop until queue is empty
  while(!animals.empty()) {

    // print the element
    cout << animals.front() << ", ";

    // pop element from the queue
    animals.pop();
  }

  cout << endl;
 
  return 0;
}
Comment

queue

""" Circular Queue
1. Below is a class implementation

2. Essential features: 
      - [Enqueue] puts items into the list via (tail)
      - [Dequeue] removes items from the list via (head)
      - Wraparound using modulus sign to keep the index...
        ...within the range of the queue
    
3. This is an implementation that doesnt require head and tail to...
   ...have -1 as the default value for an empty list

This is my attempt at shortening the CircularQueue class
Check out the source for more info!
"""
class CircularQueue:
    def __init__(self, max_size, start=0):
        self._queue = [None]*max_size
        self._max_size = max_size
        self._size = 0
        self._head = self._tail = start
    
    def empty(self):
        return self._size == 0
    
    def full(self):
        return self._size == self._max_size
    
    def update_tail(self):
        self._tail = (self._tail + 1) % self._max_size
    
    def update_head(self):
        self._head = (self._head + 1) % self._max_size
        
    def enqueue(self, data): # enqueue
        if self.full():
            return "Full"

        # Put item into queue
        self._queue[self._tail] = data
        self._size += 1
        self.update_tail()
        
        # To check
        return data
    
    def dequeue(self): # dequeue
        if self.empty():
            return "Empty"
        
        # Remove item from queue
        data = self._queue[self._head]
        self._queue[self._head] = None
        self._size -= 1
        self.update_head()
        
        # To check
        return data
    
    def head_at(self):
        return self._head
    
    def tail_at(self):
        return self._tail
    
    def max_size_of(self):
        return self._max_size
    
    def size_of(self):
        return self._size
    
    def display(self):
        return self._queue
    
# Test 
from random import randrange
def CQ_Test(CQ):
    # Create random list
    lst = [randrange(10, 100) for _ in range(10)]
    print(f"List: {lst}", 
          sep = " | ", end = "

")
    
    # Create Empty CQ with length less than lst
    len_CQ = len(lst) - 1
    CQ = CQ(len_CQ)
    print(f"Enq:   ",
          f"used: {CQ.usedslots()}",
          f"H,T: {CQ.head_at()}, {CQ.tail_at()}",
          f"CQ: {CQ.display()}", 
          sep = " | ")   ## Display Empty CQ
    
    # Fill CQ completely
    for item in lst:
        print(f"Enq: {CQ.enq(item)}",
              f"used: {CQ.usedslots()}",
              f"H,T: {CQ.head_at()}, {CQ.tail_at()}",
              f"CQ: {CQ.display()}",
              sep = " | ")
    print()
    
    # Remove half of CQ
    mid = len_CQ // 2
    for i in range(mid):
        print(f"Deq: {CQ.deq()}", 
              f"used: {CQ.usedslots()}",
              f"H,T: {CQ.head_at()}, {CQ.tail_at()}", 
              f"CQ: {CQ.display()}",
              sep = " | ")
    print()
    
    # Fill CQ back to full
    for i in range(mid, len_CQ - 1):
        print(f"Enq: {CQ.enq(lst[i])}", 
              f"used: {CQ.usedslots()}",
              f"H,T: {CQ.head_at()}, {CQ.tail_at()}",
              f"CQ: {CQ.display()}",
              sep = " | ")
    print()    
    
    # Remove all in CQ
    for i in range(len_CQ + 1):
        print(f"Deq: {CQ.deq()}", 
              f"used: {CQ.usedslots()}",
              f"H,T: {CQ.head_at()}, {CQ.tail_at()}",
              f"CQ: {CQ.display()}",
              sep = " | ")
CQ_Test(CQ)

"""Latest Edits 
   
1. Removed: 
    def usedslots(self):
      return sum(_ is None for _ in self.q)

- The reason I removed the method size() is that it was not time efficient. 
- Instead, updating self.used at enq() and deq() is better.
- It could have just been self.q.count(None) instead lol
"""
Comment

PREVIOUS NEXT
Code Example
Cpp :: replace a char in string c++ at a specific index 
Cpp :: calling by reference c++ 
Cpp :: floyd algorithm 
Cpp :: unordered_map in c++ 
Cpp :: cpp compare strings 
Cpp :: Decision Making in C / C++ (if , if..else, Nested if, if-else-if ) 
Cpp :: c++ map vector as keys 
Cpp :: ifstream file (“code2.txt”); dev C++ 
Cpp :: C++ ss 
Cpp :: how atan work c++ 
Cpp :: building native binary with il2cpp unity 
Cpp :: pointers in cpp 
Cpp :: i++ i-- 
Cpp :: C++ Initializing a thread with a class/object 
Cpp :: Road sign detection and recognition by OpenCV in c 
Cpp :: copy file to vector c++ 
Cpp :: pointer in cpp details 
Cpp :: cpp module 42 
Cpp :: c++ Testing implementation details for automated assessment of sorting algorithms 
Cpp :: properties of loop in c++ and how it works 
Cpp :: Link List Insertion a node 
Cpp :: c++ to c code converter 
Cpp :: como copiar codigo de c++ con numeros de fila en docs 
Cpp :: Difference Array | Range update query in O 
Cpp :: sort using comparator anonymous function c++ 
Cpp :: Runtime error(Exit status:153(File size limit exceeded)) c++ 
Cpp :: check if a variable is tring c++ 
Cpp :: c++ cout format specifier for correct number of decimal points 
Cpp :: initialise a vector c++ 
Cpp :: c++ sigabrt 
ADD CONTENT
Topic
Content
Source link
Name
4+5 =