Skip to main content

Simple implementation of data structures for python

Project description

pyfds

Simple implementaion of data structures (DS) for python

Content

  • linked list
  • doubly linked list
  • sorted linked list
  • stack
  • queue
  • priority queue
  • binary search tree
  • utils // (package)

Content of utils

  • node // single pointer node
  • dnode // double pointer node
  • tnode // tree pointer node
  • pair

how to import utils

from pyfds.utils import *
pair = Pair()
or
import pyfds.utils
pair = utils.Pair()

Classes

  • List // linked list
  • DList // doubly linked list
  • SList // sorted linked list
  • Stack // stack
  • Queue // queue
  • PQueue // priority queue
  • BST // binary search tree

API

List

Properties

  • first // TODO: return the data in the first node
  • last // TODO: return the data in the last node

Methodes

  • insert(data, pos) // TODO: add node in the entered position (pos=0 => add in the begining) // the default value is set to 0
  • append(data) // TODO: add node in the end
  • delete(data) // TODO: delete all nodes hav the entered data
  • remove(pos=0) // TODO: return and remove node in the entered position (pos=0 => remove first node, pos=-1 => remove last node)

DList

Properties

  • first // TODO: return the data in the first node
  • last // TODO: return the data in the last node

Methodes

  • add_begin(data) // TODO: add a node to the begin
  • add_fin(data) // TODO: add a node to the fin
  • delete(data) // TODO: delete all nodes hav the entered data
  • remove(pos) // TODO: return and remove node in the entered position (pos=0 => remove first node, pos=-1 => remove last node) // the default value is set to 0

SList

Properties

  • first // TODO: return the data in the first node
  • last // TODO: return the data in the last node

Methodes

  • append(data) // TODO: add a node to the list in a sorted way
  • delete(data) // TODO: delete all nodes hav the entered data
  • remove(pos) // TODO: return and remove node in the entered position (pos=0 => remove first node, pos=-1 => remove last node) // the default value is set to 0

Note

  • the (reverse, sort, exchange) are not supported in this DS because they brake the rule of the Sorted Linked List

Stack

Properties

  • top // TODO: return the data in the first node

Methodes

  • push(data) // TODO: add a node to the top
  • pop() // TODO: return and remove the node in the top

Queue

Properties

  • front // TODO: return the data in the first node
  • back // TODO: return the data in the last node

Methods

  • enqueue(data) // TODO: add a node to the end
  • dequeue() // TODO: return and remove the first element

PQueue

Properties

  • front // TODO: return the data in the first node
  • back // TODO: return the data in the last node

Methods

  • enqueue(data) // TODO: add a node to the queue in a sorted way
  • dequeue() // TODO: return and remove the first element

Methods for all DSs

  • str() // USE: print([DS_name]) // TODO: display the DS
  • len() // USE: len([DS_name]) // TODO: return the lenth of the DS
  • empty() // TODO: return True if the DS is empty
  • clear() // TODO: clear the DS
  • find(data) // TODO: return the number of how many the entered data found in the DS
  • reverse() // TODO: return the reverse of the DS
  • sort() // TODO: sort the DS if its not sorted
  • exchange(n) // TODO: circular permutation for n time
  • equals(DS) // TODO: return True if DS is equal to this DS

classmethods for all DSs

// USE: [DS] = [DS_type].method([DS1], [DS2])
// Examples:
stck3 = Stack.merge(stck1, stck2)
Stack.swap([DS1], [DS2])
the tow DS parameters must be from the same DS

  • merge(DS1, DS2) // TODO: return the merge of two DSs in new DS
  • swap(DS1, DS2) // TODO: swap between DS1 and DS2 (DS1 will be DS2 and DS2 will be DS1)

BST

properties

  • number_of_nodes // TODO: return the number of nodes in the BST
  • number_of_liefs // TODO: return the number of liefs (nodes without any children) in the BST
  • height // TODO: return the height of the BST
  • max // TODO: return the maximum value in the BST
  • min // TODO: return the minimum value in the BST

methodes

  • pre_order() // TODO: represent the BST in pre_order way
  • in_order() // TODO: represent the BST in in_order way
  • post_order() // TODO: represent the BST in post_order way
  • append(data) // TODO: append a new node to the BST if not exist
  • find(data) // TODO: search for an element in the BST and return it if exist
  • parent(data) // TODO: return the parent node of an element if exist
  • successor(data) // TODO: return the next value in the BST if exist
  • predecessor(data) // TODO: return the previous value in the BST if exist
  • delete(data) // TODO: delete an element from the BST if exist
  • equals(bst) // TODO: return True if bst is equal to this BST (this BST is the same as bst)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-fds-3.5.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

py_fds-3.5.0-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file py-fds-3.5.0.tar.gz.

File metadata

  • Download URL: py-fds-3.5.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.6rc1

File hashes

Hashes for py-fds-3.5.0.tar.gz
Algorithm Hash digest
SHA256 df8e8c95f525e16e81190c32f3518928d2f96f5d1da3cea8629b7b0e4fd92e2f
MD5 79b8094b8189b89438c7a027a915d4c9
BLAKE2b-256 ed9e7282193adf1cfe5df69eff89580ccb3c8ca18e3fd6981d0de1613486dd00

See more details on using hashes here.

File details

Details for the file py_fds-3.5.0-py3-none-any.whl.

File metadata

  • Download URL: py_fds-3.5.0-py3-none-any.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.6rc1

File hashes

Hashes for py_fds-3.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb1e49b10cfe5979a4fde21b41dcd364e69736141d731c11a8902a12846094db
MD5 1499bc58bdb94b41713f47bdea768178
BLAKE2b-256 99785f4892893e80306d410d650ad8117213c72cae00c843293c20e561943bfb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page