Welcome to the COS2611 organization on GitHub! This organization is aimed at university students studying "COS2611: Programming: Data Structures" and is dedicated to helping students learn data structures using C++.
The purpose of this organization is to encourage student participation and facilitate learning by providing a platform where students can access various resources, including code examples, solutions to programming challenges, and discussion forums where they can seek and provide help.
Most of the code examples provided in this organization are taken from the book Data Structures Using C++ - Second Edition by DS Malik. We have adapted and modified these examples to better suit the needs of the students studying COS2611.
This organization is run by students and it is a work in progress (as of March 2023). The study objectives for this organization are listed below. Contributions to this organization will be made over time, so check back for updates. If there is something in particular you would like help with, please see the contact us section below and get in touch.
These repositories contain various resources to help students learn data structures using C++. Here's a quick overview of what you can find in this repository:
- Code examples: These repositories contain code examples that cover various topics related to data structures using C++. You can use these examples to practice coding and to get a better understanding of how data structures work.
- Programming challenges: We have included programming challenges in this repository to help you practice your programming skills. These challenges are designed to test your knowledge of data structures and to help you apply the concepts you have learned in class.
- Discussions: We encourage students to participate in discussions on the discussion forums to ask and answer questions, share tips and best practices, and help each other learn. Contributing to this repository
We welcome contributions from students and anyone interested in data structures and C++. If you would like to contribute to these repositories, you can do so by submitting a pull request for a particular repository. We also encourage you to submit bug reports, feature requests, and feedback to help us improve this repository.
We would like to acknowledge DS Malik for his book "DATA STRUCTURES USING C++ -Second Edition," which has provided much of the code examples used in this organization.
If you have any questions or feedback, please feel free to contact us through the discussion forums or by emailing us at [tide.mute_06@icloud.com]. We look forward to hearing from you and hope that you find this repository helpful in your studies of data structures using C++.
- Specify a function to indicate the time and space requirements of a (non-recursive) algorithm in terms of input size.
- Determine the worst case time and space complexity of non-recursive algorithms.
- Declare and manipulate pointer variables
- Use the new and delete operators to manipulate dynamic variables
- Use dynamic arrays
- Distinguish between shallow and deep copies of data
- Implement classes with pointer data members
- Apply STL components such as containers, iterators, and algorithms (Not examinable)
- Explain the basic concepts of linked lists
- Implement insertion and deletion operations on linked lists
- Implement and manipulate a linked list
- Implement and manipulate an ordered list
- Apply the STL container
- Understand recursive functions
- Implement recursive functions to solve problems
- Explain the basic concepts of stacks
- Implement a stack using an array
- Apply the STL stack container
- Explain the basic concepts of queues
- Implement a queue using an array
- Apply the STL queue container
- Implement and analyse the sequential search algorithm.
- Implement and analyse the binary search algorithm.
- Implement and analyse the selection sort algorithm
- Implement and analyse the insertion sort algorithm
- Apply the quick sort algorithm
- Apply the merge sort algorithm
- Explain the basic concepts of binary trees
- Apply binary tree traversals
- Implement a binary tree
- Implement a binary search tree
- Analyse binary search trees
- Explain the basic concepts of graph theory
- Know how to represent a graph as an ADT
- Explain and apply the breadth-first traversal algorithm
- Explain and apply the shortest path algorithm