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 beDS2
andDS2
will beDS1
)
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 asbst
)
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
py_fds-3.5.0-py3-none-any.whl
(24.5 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | df8e8c95f525e16e81190c32f3518928d2f96f5d1da3cea8629b7b0e4fd92e2f |
|
MD5 | 79b8094b8189b89438c7a027a915d4c9 |
|
BLAKE2b-256 | ed9e7282193adf1cfe5df69eff89580ccb3c8ca18e3fd6981d0de1613486dd00 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb1e49b10cfe5979a4fde21b41dcd364e69736141d731c11a8902a12846094db |
|
MD5 | 1499bc58bdb94b41713f47bdea768178 |
|
BLAKE2b-256 | 99785f4892893e80306d410d650ad8117213c72cae00c843293c20e561943bfb |