Skip to main content

A Python package with simple implementation of a singly linked list with various utility functions.

Project description

Singly Linked List in Python

A simple implementation of a singly linked list with various utility functions.

Table of Contents

Installation

You can install the package via pip:

pip install singly_linked_list

Usage

Here’s a quick example of how to use the SinglyLinkList class:

from singly_linked_list import SinglyLinkList

# Create a new linked list
linked_list = SinglyLinkList()

# Add elements
linked_list.push(10)  # Add to front
linked_list.append(20) # Add to end
linked_list.insert(10, 15) # Insert after 10

# Print the list
print(linked_list.printList())  # Output: [15, 10, 20]

# Remove an element
linked_list.remove(10)
print(linked_list.printList())  # Output: [15, 20]

Features

  • Add Nodes: push(data), append(data), insert(after_element, data)
  • Remove Nodes: remove(element), delete()
  • Search: search(key), count(key)
  • Traversal: printList(), length(), getNth(n), getNthFromLast(n)
  • Utilities: isPalindrome(), checkLoop(), lengthOfLoop(), uniqueSorted()
  • Modify List: reverseList(), segregateEvenOdd()
  • Merging Lists: mergeTwoLists(l1, l2)

API Reference

The SinglyLinkList class provides methods for manipulating linked lists as described in the features section. Each method has its own functionality:

  • Initialization: SinglyLinkList()

  • Add Nodes:

    • push(data): Add a new node at the beginning.
    • append(data): Add a new node at the end.
    • insert(after_element, data): Insert a new node after a specified element.
  • Remove Nodes:

    • remove(element): Remove the first occurrence of an element.
    • delete(): Delete the entire linked list.
  • Traversal and Querying:

    • printList(): Return a list of node values.
    • length(): Return the number of nodes in the list.
    • getNth(n): Get the nth node's data.
    • getNthFromLast(n): Get the nth node's data from the end.
  • Utilities:

    • isPalindrome(): Check if the list is a palindrome.
    • checkLoop(): Check for loops in the list.
    • lengthOfLoop(): Find the length of a loop if it exists.
    • uniqueSorted(): Retrieve unique elements in sorted order.
  • Modify List:

    • reverseList(): Reverse the order of nodes.
    • segregateEvenOdd(): Separate even and odd nodes.
  • Merging Lists:

    • mergeTwoLists(l1, l2): Merge two sorted linked lists.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

This project is licensed under the MIT License.

image

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_linked_list-1.0.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

py_linked_list-1.0.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file py_linked_list-1.0.0.tar.gz.

File metadata

  • Download URL: py_linked_list-1.0.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.1

File hashes

Hashes for py_linked_list-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9b8838c07aaf6f69d94b93cca5e793f38b59a2cc3c5be9e0ca367d27e5903a07
MD5 2ec555c930f4fbfd05eaa27ff4ac443f
BLAKE2b-256 d6fd1daea6b09872f938d6ebbbbe274fdff0bba2d927a8b74c7d051d456dc3c1

See more details on using hashes here.

File details

Details for the file py_linked_list-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for py_linked_list-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08eb2468ce9fffee7dbba57954e02cf91cb1594e0e603ef0b83392d5b390696f
MD5 b17d795c6fc8657645964a544351e000
BLAKE2b-256 d9b58cac68330055766dada633b016c56cb95ffc74636c7e02879e6ea77479ef

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