Skip to main content

### Circular Array

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

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
  • now fully supports 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.8.1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grscheller_circular_array-3.8.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for grscheller_circular_array-3.8.1.tar.gz
Algorithm Hash digest
SHA256 1fafb08121252b46a7e87028f7796dff7292527a1de7aeb36af797aca7e09b23
MD5 b7e3b2db6a7ab101686f9f731c05b18d
BLAKE2b-256 aa42a23ae811320f4f7f07445d77b1730936318b0bd443f33a84626b3d32cd54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grscheller_circular_array-3.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3d6a5bf548914b489802399f7889430ab72033ceca7f590231c5f2ad8ef5746
MD5 ebc2132988082cf86c4a96b39f82d595
BLAKE2b-256 4f621bda3ada964a5457f8cb2546126d30ff31a842ef9e494d49f7197307ec28

See more details on using hashes here.

Supported by

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