DEV Community

Leo
Leo

Posted on

SO

so.hpp

#ifndef so_hpp
#define so_hpp

#include <iostream>
#include <assert.h>

class process {

    class node {

  char _id;
  int _time;
  int _priority;
  node *_next;

  public:

    node(char i, int t, int q);

  char id() const { return _id; } //cual es el id
  int tme() const { return _time; } //cual es el tiempo
  int prty() const { return _priority; } //cual es la prioridad
  node *next() const { return _next; } // cual es el siguiente apuntador
  void next(node *p) { _next = p; } // cambia el siguiente ap
  };

  int n; // Capacity of process
  int s; // Size of process

  node *head; // First item in queue
  node *tail; // Last item in queue

public:

  process(int);
  ~process();

  void push(int);
  int pop(void);

  int capacity() const { return n; }
  int size() const { return s; }

  bool full() const { return s==n; }
  bool empty() const { return s==0; }

  void print();
};

#endif /* so_hpp */
Enter fullscreen mode Exit fullscreen mode

so.cpp

#include "so.hpp"

  process::node::node(char i, int t, int q) {
      _id = i;
      _time = t;
      _priority = q;
      _next = nullptr;
  }

  process::process(int c){

      n = c;
      s = 0;
      head = nullptr;
      tail = nullptr;
  }

  process::~process(){

      while(head != nullptr) {

          node *p = head;
          head = head -> next();
          delete p;
      }
  }

  void process::push(char i, int t, int q){

      assert(!full());
    node *p = new node(i, t, q);
    if(empty()) {
        head = p;
        tail = p;
      }else{
        tail -> next(p);
        tail = p;
    }
    s++;
  }

  int process::pop(){

      assert(!empty());
          char i = head -> id();
          int t = head -> tme();
          int q = head -> prty();

          node *p = head;
          head = p -> next(); 
          delete p;
          s--;
          return x;
  }

  void process::print(){

      node *p = head;
      std::cout<<"[ ";
      while(p != nullptr){
      std::cout << p -> data() << " ";
      p = p -> next();
      }
  std::cout << "]" << std::endl;
}



Enter fullscreen mode Exit fullscreen mode

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs