Skip to main content

### Circular Array

Project description

Python Circular Array Implementation

Python module implementing an indexable, double sided, auto-resizing queue data structure.

Overview

Useful if used directly as an improved version of a Python List or in a "has-a" relationship when implementing other data structures.

  • O(1) pushes and pops either end.
  • O(1) indexing
  • does not support slicing

Usage

from grscheller.circular_array.ca import CA

ca = CA(1, 2, 3)
assert ca.popL() == 1
assert ca.popR() == 3
ca.pushR(42, 0)
ca.pushL(0, 1)
assert repr(ca) == 'CA(1, 0, 2, 42, 0)'
assert str(ca) == '(|1, 0, 2, 42, 0|)'

ca = CA(*range(1,11))
assert repr(ca) == 'CA(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)'
assert str(ca) == '(|1, 2, 3, 4, 5, 6, 7, 8, 9, 10|)'
assert len(ca) == 10
tup3 = ca.popLT(3)
tup4 = ca.popRT(4)
assert tup3 == (1, 2, 3)
assert tup4 == (10, 9, 8, 7)

assert ca == CA(4, 5, 6)
four, *rest = ca.popFT(1000)
assert four == 4
assert rest == [5, 6]
assert len(ca) == 0

ca = CA(1, 2, 3)
assert ca.popLD(42) == 1
assert ca.popRD(42) == 3
assert ca.popLD(42) == 2
assert ca.popRD(42) == 42
assert ca.popLD(42) == 42
assert len(ca) == 0

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

grscheller_circular_array-3.6.2.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

grscheller_circular_array-3.6.2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file grscheller_circular_array-3.6.2.tar.gz.

File metadata

File hashes

Hashes for grscheller_circular_array-3.6.2.tar.gz
Algorithm Hash digest
SHA256 084c387221032e3e96565c4f1a94c61a3c6edd9827affa9f86256567ee3d4ebf
MD5 ff7adca935fd43784572a56fe5266057
BLAKE2b-256 92859ce303639c43c2ddabfda1605f51c4145ce44e8629215877bea7ae2df16b

See more details on using hashes here.

File details

Details for the file grscheller_circular_array-3.6.2-py3-none-any.whl.

File metadata

File hashes

Hashes for grscheller_circular_array-3.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4dfa0b1e85e859c62d42bc55afc35c40569cd23a45fe5661223e6e00fa3cdda7
MD5 dd88ecc28dd93cfe66ff1ede1391defc
BLAKE2b-256 7ab59930e74f1467c8656a00fc881ee6ad370471fd0a8959c1ae7733df21dcf2

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