Tutorial 2 abstract data types
1 / 11

Tutorial 2 Abstract Data Types - PowerPoint PPT Presentation

  • Uploaded on

Tutorial 2 Abstract Data Types. Admin Stuffs. Some of you request to change tutorial class… Transfer within my own classes (T3, T4, T5, T6) is fine. Transfer between different tutors requires permission. Ask Dr Tan Sun Teck’s permission for such changes.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Tutorial 2 Abstract Data Types' - trevor

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Tutorial 2 abstract data types

Tutorial 2Abstract Data Types

Admin stuffs
Admin Stuffs

  • Some of you request to change tutorial class…

    • Transfer within my own classes (T3, T4, T5, T6) is fine.

    • Transfer between different tutors requires permission.

      • Ask Dr Tan Sun Teck’s permission for such changes.

  • Refrain from asking lab assignments to me

    • I am not supposed to help you with debugging or finding the algorithm etc…

  • Bidding system not working (yet) 

    • If this system is not good, I will be forced to change it…

Abstract data type adt
Abstract Data Type (ADT)

  • Data Structure:

    • “Structure of Data”, structure makes life easier

  • Algorithm:

    • Step by step way to solve certain problem

  • Abstract Data Type

    • Data + Operations (Algorithms) to organize that data structure

    • Walls: We do not need to know the implementation details

    • Examples: Complex Number, Sphere, ColoredSphere:Sphere, List, etc.

  • Wait!! Contradictions??

    • We are given so many implementation details here! Why bother with details?

  • In fact, we are going to do that throughout this module 

    • To give you a strong theoretical foundation…

    • Later on, you will just use these ADTs for your programming tasks

Implementing adt in java class
Implementing ADT in Java: Class

  • Java class is used to implement these ADT

  • This is the basic pattern of a class implementation:

    • public class C { // save as C.java private (instance) attributes… public (instance) attributes, constructor, methods…}

  • Sometimes we use “Interface”

    • interface C_interface { // signature of public methods are mentioned here desired interfaces…}

    • public class C implements C_interface { // a guarantee that we will implement the methods implementation must adhere the agreed interface, otherwise we have compile error}

  • In main method:

    • public static void main(String[] args) { C cInstance = new C();}

Object oriented programming
Object Oriented Programming

  • We learned these OOP concepts via these two questions:

    • Q1: Programming using agreed interfaces; Abstraction provided by ADTs; Implementing ADTs in Java.

    • Q2: Software re-use, A demonstration of “Integration” of (F1_2008); (F1_Driver, F1_Team, F1_Championship); and (F1_Race)

Student presentation
Student Presentation

  • T3

    • N/A

    • N/A

    • N/A

  • T4

    • N/A

    • N/A

    • N/A

  • T5

    • Tan Yan Hao

    • Tan Yan Hao

    • Tan Yan Hao

  • T6

    • Wong Shiang Ker

    • Nguyen Duy Hoang

    • Nguyen Duy Hoang

Better participation level is expected for tutorial 3 onwards!

Question 1 2 f1 1
Question 1 & 2 - F1 (1)

The answer for these two questions are in the Java source codes!

Question 1 2 f1 2
Question 1 & 2 - F1 (2)

  • Coded by your TA:

    • F1_2008.java

  • Coded by you:

    • Q1:

      • F1_Driver.java

      • F1_Team.java

      • F1_Championship.java

    • Q2:

      • F1_Race.java

The bridge between the two:


Airbus 380 Integration Problem:


Q3 compact array
Q3 – Compact Array

  • How to add?

    • Find first empty slot, insert it (bad).  O(n)

    • Maintain an index of first empty slot, insert there, add the index by 1 (good).  O(1)

  • How to add when full?

    • Create a new array, double the size, copy the entries to new array.

  • How to edit?

    • Search it from left to right, if found, replace the content.

    • As soon as you hit an empty slot, it means that the entry is not in the compact array.

  • How to delete?

    • Search it, delete the entry, shift everything on the right side of it to left by one! Tedious!

  • What are the potential issues with (b) and (d)? (see above)

That s all for today
That’s all for today

  • Next week, we will continue our lesson with Linked List.

  • Maybe a better data structure than “compact array”, especially for Q3.

    • Remember that the “best” data structure depends on the given scenario!