Skip to content

Instantly share code, notes, and snippets.

View KerryJones's full-sized avatar

Kerry Jones KerryJones

  • Oakland Hills
  • 23:09 (UTC -07:00)
View GitHub Profile
@KerryJones
KerryJones / data-structure-queue.php
Created December 4, 2015 06:46
PHP Data Structure: Queue
class Queue {
protected $first;
protected $last;
public function enqueue($data) {
$node = new Node($data);
if ( is_null( $this->first ) ) {
$this->first = $this->last = $node;
} else {
@KerryJones
KerryJones / tower-of-hanoi.php
Created December 4, 2015 10:48
Tower of Hanoi with Stacks
/**
* Childs game Tower of Hanoi with Stacks
* O(n^2)
*
*
* Disk layout
*
* 1|1 | |
* 2_|_2 | |
* 3__|__3 | |
@KerryJones
KerryJones / bfs-tree.php
Last active September 12, 2019 05:54
PHP BFS on a Tree
function BFS( $node, $data ) {
if ( $node->data == $data )
return $node;
$node->visited = true;
$queue = new Queue;
$queue->enqueue($node);
while ( !$queue->isEmpty() ) {
@KerryJones
KerryJones / dfs-tree.php
Created December 8, 2015 04:44
PHP DFS on a Tree
function DFS( $node, $data ) {
if ( $node->data == $data )
return $node;
$new_node = null;
if ( !is_null( $node->left ) )
$new_node = DFS($node->left, $data);
if ( !$new_node && !is_null( $node->right ) )
@KerryJones
KerryJones / bit-manipulations.php
Created December 10, 2015 09:01
PHP Bit Manipulations
function getBit($binary_number, $byte_placement) {
return ( $binary_number & ( 1 << $byte_placement ) ) != 0;
}
function setBit( $binary_number, $byte_placement ) {
return $binary_number | ( 1 << $byte_placement );
}
function clearBit( $binary_number, $byte_placement ) {
$mask = ~( 1 << $byte_placement );
@KerryJones
KerryJones / quick-sort.php
Created December 15, 2015 08:58
PHP Quick Sort
<?php
function QuickSort(&$array, $start, $end) {
if ( $start < $end ) {
$pivotIndex = partition($array, $start, $end);
QuickSort($array, $start, $pivotIndex - 1);
QuickSort($array, $pivotIndex + 1, $end);
}
}
function partition(&$array, $start, $end) {
@KerryJones
KerryJones / linked-list.py
Created December 31, 2015 05:28
Python Linked List
class LinkedList(object):
head = None
def add(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
node = self.head
@KerryJones
KerryJones / stack.py
Created December 31, 2015 05:35
Python Data Structure for Stack
class Stack(object):
top = None
def push(self, data):
node = Node(data)
node.next = self.top
self.top = node
def pop(self):
if self.top is None:
@KerryJones
KerryJones / binary-search-tree.py
Created December 31, 2015 06:58
Python Data Structure: Binary Search Tree
class BST(object):
root = None
def search(self, data):
return self._binarySearch(data, self.root)
def _binarySearch(self, data, root):
if root is None:
return False
elif root.data == data:
@KerryJones
KerryJones / prime.py
Last active December 31, 2015 07:18
Python: Determine if a number is a prime
def prime(n):
if n == 2:
return True
elif n % 2 == 0:
return False
max = math.ceil(math.sqrt(n))
for i in range(3,max,2):
if n % i == 0: