0% found this document useful (0 votes)
37 views

Data Structures

This document discusses abstract data types (ADTs) and their applications and representations. It covers defining an ADT, examples like arrays and linked lists, using stacks in memory management and queues to solve problems, and representing ADTs in object-oriented programming languages. It also discusses sorting algorithms like bubble sort and quick sort, and shortest path algorithms like Dijkstra's and Bellman-Ford's algorithms.

Uploaded by

Anh Tuấn
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Data Structures

This document discusses abstract data types (ADTs) and their applications and representations. It covers defining an ADT, examples like arrays and linked lists, using stacks in memory management and queues to solve problems, and representing ADTs in object-oriented programming languages. It also discusses sorting algorithms like bubble sort and quick sort, and shortest path algorithms like Dijkstra's and Bellman-Ford's algorithms.

Uploaded by

Anh Tuấn
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 1

1 Data structures

1.1 Abstract data type (P1)


1.1.1 Definition
Give definition of what is ADT, common ways to represent ADT
1.1.2 Examples
Give examples of a general ADT, using a representation to illustrate. You can choose one of
the following ADT: Array, Linked List, Doubly Linked List, Circular Linked List.
(The best way to illustrate operations of an ADT is using table)
1.2 ADT usages
1.2.1 Application of Stack in memory (P2)
Describe an application of Stack in memory management: how the memory is organized,
how a method (function) calls is implemented with stack.
1.2.2 Application of an ADT (P3)
Describe a problem where you need an ADT (Array, Linked List, DLL, CLL), describe that data
structure operations can be used for that problem.
1.2.3 Application of Queue (M1)
Describe a problem where you need Queue, describe a concrete queue for that problem
and why using queue can solve that problem.
1.3 ADT vs OOP (M3, D2)
1.3.1 Using OOP to represent ADT
Represent an ADT in Java programming language (you can use abstract class or interface),
explain how the ADT operations can be represented by methods of your class / interface.
1.3.2 Discussion
Discuss how OOP can help to represent ADT and implement ADT (encapsulation, override,
inheritance)

2 Algorithms
2.1 Sorting algorithms (M2)
2.1.1 Bubble sort (or other O(n2) sort algorithms)
Describe how it works
Analyze its performance (time, memory)
2.1.2 Quick sort (or other O(nlogn) sort algorithms)
Describe how it works
Analyze its performance (time, memory)
2.2 Shortest path algorithms (D1)
2.2.1 Dijkstra’s algorithm
Describe how it works by using concrete example
2.2.2 Bellman Ford’s algorithm
Describe how it works by using concrete example

You might also like