Skip to content

g-tapia/Data-Structures_Labs-1-11_Python-

Repository files navigation

Data-Structures-Labs-1-11-Python-

This repository contains a series of labs aimed at introducing and solidifying knowledge in various data structures and algorithms. Each lab focuses on a specific concept, introducing its theory, and then applying it in practice. (Note: I was not able to extract the pdf descriptions from mimir so I had to take screenshots. They will be at the bottom of this readme).

Lab 1: Basic Python

Purpose: This lab serves as an introduction to Python programming. It covers basic Python syntax, data types, control structures, functions, and other fundamental concepts.

Implementation: We implemented various simple functions and data manipulation tasks using Python's built-in data types and control structures. This laid the foundation for the future labs and the rest of the Python programming journey.

Lab 2: Iocane

Purpose: The second lab introduces strategic game theory, encapsulated in a "Princess Bride"-inspired game.

Implementation: We implemented different strategies for predicting an opponent's moves based on their previous actions, using conditional logic and basic Python data structures.

Lab 3: Ngrams

Purpose: The Ngrams lab introduces text processing concepts and basics of natural language processing.

Implementation: We implemented N-grams, a basic model for predicting the next item in a sequence, to generate new text based on an existing corpus of text.

Lab 4: ArrayList

Purpose: This lab introduces the ArrayList data structure, a fundamental and versatile data structure in computer science.

Implementation: We implemented an ArrayList from scratch, including methods for adding and removing elements, retrieving elements at a particular index, and resizing the array as necessary for space efficiency.

Lab 5: LinkedList

Purpose: In this lab, we explore the LinkedList data structure, another fundamental data structure with unique characteristics and use-cases.

Implementation: We implemented a LinkedList from scratch, building a node-based structure with methods for adding, removing, and retrieving elements, and traversing the list.

Lab 6: Hashtable

Purpose: The Hashtable lab introduces the concept of hashing and the use of hashtables as a highly efficient data structure for storing and retrieving data.

Implementation: We implemented a Hashtable, along with appropriate hashing functions. The implementation includes methods for inserting, retrieving, and deleting elements, managing collisions, and resizing the hashtable for efficiency.

Lab 7: Stacks and Queues

Purpose: This lab focuses on Stacks and Queues, both abstract data types that represent a collection of elements with specific rules for addition and removal.

Implementation: We implemented both Stacks (LIFO - Last In First Out) and Queues (FIFO - First In First Out), with methods for adding elements, removing elements, and checking if the structure is empty.

Lab 8: Heaps

Purpose: The Heaps lab focuses on the Heap data structure, a specialized tree-based structure that satisfies the heap property.

Implementation: We implemented a binary heap with methods for inserting elements, deleting elements, and heapify operations. We further explored the use of heaps in sorting (heapsort).

Lab 9: Recursion

Purpose: This lab introduces the concept of recursion, a method where the solution to a problem depends on solutions to smaller instances of the same problem.

Implementation: We implemented various recursive functions and algorithms, such as factorial calculation, Fibonacci sequence generation, and recursive tree traversal.

Lab 10: BSTree

Purpose: This lab introduces Binary Search Trees (BST), a tree-based data structure with properties that make searching for elements extremely efficient.

Implementation: We implemented a binary search tree, complete with insertion, deletion, and searching methods. This included traversal methods and an understanding of the concepts of tree balance.

Lab 11: AVL Tree (Optional)

Purpose: The optional AVL Tree lab extends the concept of BSTs to introduce

I will also attach screen shots below:

image

image

image

image

image

image

image

image

image

image

image

image

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages