Giter Site home page Giter Site logo

data-structures's Introduction

Data-Structures

  • sample code for a number of classic data structures implemented in Python

Radix Sort

  • Radix sort is an integer sorting algorithym that uses positional sorting to group inputs into segments then returns a fully sorted list by least significant digit.
  • Worked with Steven and Victor writing this function.

Cited Sources:

Radix Tree Implementation

Binary Search Tree

  • Our Binary Search Tree is a binary tree that implements rotations, self-balancing, traversals and node deletion.
  • Binary Search Trees are ideal for situations where data access speed is paramount and additional processing at the time of insert and deletion will not impact system performance.
  • Group whiteboarding session between Derek, Mike, James, Steve and Nick was helpful in determining when BST rotations should take place.

Cited Sources:

Binary Tree Implementation

All work below this point was before the fork and by Derek Hewitt and Victor Benavente.

Singly-Linked List

  • this is an implementation of a singly linked list in Python

Stack

  • this is an implementation of a simple pancake stack in Python

Doubly-Linked List

  • this is an implementation of a doubly linked list in Python

Cited Sources:

Queue

  • this is an implementation of a queue in Python
  • inherited methods from our doubly linked list

Deque

  • this is an implementation of a deque in Python
  • inherits methods from our doubly linked list

Heap

  • this is an implementation of a heap in Python
  • our implementation is a min heap
  • we used the builtin Python list
  • Cris helped us out twice

Priority Queue

  • this is an implementation of a priority queue in Python

Graph

  • this is an implementation of a graph in Python
  • this implementation is a directed simple graph
  • Nic helped us with del_edge

Cited Sources

Graph Traversal

  • implements two new methods on our simple graph
    • depth-first traversal walks through a data structure by fully exploring it's first selection and then moving on to the next and fully exploring it in turn
    • breadth-first traversal walks through nodes by spreading out from the initial starting point and visiting every closer node before stepping through to visit their neighbors

Cited Sources

Graph Weights

  • implements edge weights on edges in our graph

Singly vs. Doubly Linked Lists

  • A Singly Linked-List

    • easier to implement
    • takes up less memory
    • faster to add or delete if you are only concerned with the next node
  • Doubly Linked-List

    • easy access to both ends of the list
    • can delete previous node without traversing from head node

    A singly linked list has a few advantages over a doubly linked list. Singly linked lists are easier to implement, take up less memory on the host machine, and it is faster to add or delete node from the list.  Doubly linked lists have a few advantages over singly linked lists, such as: easy access to both ends of the list and you can delete a node from anywhere in the list without traversing from the head.  Choosing between these different list types is a complicated question of performance vs memory concerns.

resources and collaborations

data-structures's People

Contributors

derekmhewitt avatar vbenavente avatar

Watchers

James Cloos avatar Jeff Torres avatar  avatar

Forkers

ilikesounds

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.