@sampoder/ib.js

1.0.1 • Public • Published

ib.js

This JS library implements the data structures outlined in the IB Computer Science Pseudocode Guide exactly as they are. Use it to experiment with the data structures or what ever you would like to do when studying CS!

Installation

The package is available as @sampoder/ib.js on NPM which after installation can be used like:

const { Stack, Collection, Queue } = require('@sampoder/ib.js')

You can also import it directly from Skypack through URL imports:

import { Stack, Collection, Queue } from 'https://cdn.skypack.dev/@sampoder/ib.js';

Make sure your script has the property type="module" set.

Collections

The Collection() class has the following methods:

Method Description
addItem(x) Add item to collection
getNext() Get the next item in the collection
resetNext() Go back to the start of the collection
hasNext() Test if the next item exists
isEmpty() Test if a collection is empty

Stacks

The Stack() class has the following methods:

Method Description
push() Push an item onto the top of the stack
pop() Removes and returns the item on the top of the stack
isEmpty() Test if a stack is empty

Queues

The Queue() class has the following methods:

Method Description
enqueue() Adds an item to the back of the queue
dequeue() Returns and removes the first item in the queue
isEmpty() Test if a queue is empty

Note: these are all minor adaptations of preexisting JS functionality but I found it helpful to have it presented in this way to understand what the course meant.

Sample Code

Here is some messy sample code to help you get an idea of how the library works.

const { Stack, Collection, Queue } = require('@sampoder/ib.js')

let s = new Stack()

console.log(s.push("hi"))

console.log(s.push("sam"))

console.log(s.pop())

console.log(s.isEmpty())

let q = new Queue()

q.enqueue(2)

q.enqueue(1)

console.log(q.dequeue())

let c = new Collection()

c.addItem("sam")

c.addItem("p")

c.addItem("2")

c.addItem("3")

c.addItem("4")

while(c.hasNext()){
  console.log(c.getNext())
}

c.resetNext()

console.log(c.getNext())

Readme

Keywords

none

Package Sidebar

Install

npm i @sampoder/ib.js

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

3.93 kB

Total Files

4

Last publish

Collaborators

  • sampoder