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.7.1.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

grscheller_circular_array-3.7.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for grscheller_circular_array-3.7.1.tar.gz
Algorithm Hash digest
SHA256 1d3e473a26397a22d3af9d20133e49183db0aba8dbf4bb51b915fc813591c61e
MD5 324dd55ac38a9e4269d5fdea64dcdfae
BLAKE2b-256 1eff60024c9a769eef62ae6c0bd19433465419677445755689013b6e21a13be7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grscheller_circular_array-3.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4e9afd245412f948b1f407776a67dc79e8ea0dc3a06c4a378e61b48384c995c3
MD5 8fa7852c0b01645a33dcff4fa60fdad5
BLAKE2b-256 fbccf9df9787dccd303c946dc1d6bb71bcb1edd6eba0f358c77f752108867ffd

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