t04 ll stack queue

Upload: krishna-manohar

Post on 29-May-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 T04 LL Stack Queue

    1/15

    Tutorial 4

    Linked List, Stack, & Queue

  • 8/9/2019 T04 LL Stack Queue

    2/15

    Linked List: Revision

    The concept of ADT List

    ADT List using Array

    Pro & cons Discussed in T02Q3

    and today in Q1!

    ADT List using Linked List

    Basic idea: Slide 17

    Linked List Node has 2 parts:

    Item/Value/Content See T03Sup1&2

    Pointers to immediate neighbors

    Single Linked List

    The basic; traversal: head to tail

    Usually: insert from head ( Stack

    ) In your lecture notes: BasicLinkList

    (Slide 26-28), ExtendedLinkedList

    (Slide 29-36)

    Generic Java (Slide 37-46) for our

    custom Basic and Extended LinkedList

    Linked List Variations:

    Linked List with Tail Pointer

    Can visit the tail very fast

    Cannot delete the tail easily

    In lecture notes (Slide 48-53):

    TailedLinkedList(revisited in Queue data structure later)

    Bidirectional Linked List

    Two pointers: forward/backward

    Can go backwards, Can delete tail!

    Extra pointer is overhead

    In lecture notes (Slide 54-58):

    DoublyLinkedList

    Circular Linked List

    Remember Tail only, Head = Tail.Next

    Can visit all node from any node .

    Good for Round Robin stuffs

    Generic LinkedList (slide 61-66)

    for a bug-free, ready-to-use LL

    Done Last Week

  • 8/9/2019 T04 LL Stack Queue

    3/15

    Student Presentation

    T31. Koh Xianghua, Nicholas

    2. N/A

    3. Sean Lim Wei Xinq

    T41. Tan Miang Yeow (Done Last Week)

    2. N/A3. Chua Kien Chuan Chris

    T51. N/A

    2. N/A

    3. N/A

    T61. Kuganeswari D/O Kuhanesan

    2. Chow Jian Ann3. Chow Jian Ann

    3

    This week marks the end of this bidding system

    Some students have not participate at all!

  • 8/9/2019 T04 LL Stack Queue

    4/15

    Question 1 (MovieDataAnalysis)

    Insert New Item (Movie ADT) to LinkedList

    Ensure that you check for duplicate data!

    4

  • 8/9/2019 T04 LL Stack Queue

    5/15

    Question 2 (MovieDataAnalysis)

    Given time period (yearA yearB)

    Get movies that are produced within that range.

    Methods

    1: Scan and select the appropriate movies

    2: Copy the list and delete movies that are out of range What if we use Doubly Linked List?

    Pro and Cons?

    5

    20082008 20072007 20072007 20082008 20062006

  • 8/9/2019 T04 LL Stack Queue

    6/15

    Question 3 (MovieDataAnalysis)

    Given two TopList containing movies, perform:

    Intersection

    Union

    Difference

    Remember that A-B is not the same as B-A!

    6

    Person As preference: Person Bs preference:

  • 8/9/2019 T04 LL Stack Queue

    7/15

    Tutorial 5 Preview

  • 8/9/2019 T04 LL Stack Queue

    8/15

    Stack: Last In First Out (LIFO)

    Stack Implemented using Array with top pointer http://www2.latech.edu/~box/ds/Stack/Stack.html

    Best Implementation?

    Using Single Link List with head pointer, demo: http://www.cosc.canterbury.ac.nz/people/mukundan/dsal/LinkListAppl.html

    Stack

  • 8/9/2019 T04 LL Stack Queue

    9/15

    Queue

    First In First Out (FIFO)

    Queue implemented as Circular Array http://maven.smith.edu/~streinu/Teaching/Courses/112/Applets/Queue/myApplet.html

    Queue implemented as Single Link List with Tail Pointer

    Head pointer for dequeue Tail pointer for enqueue

    We reverse their role

    because of the pointer directions

    Best Implementation?

    Use Circular Single Link List

    Save one more pointer as head = tail.next

  • 8/9/2019 T04 LL Stack Queue

    10/15

    Student Presentation

    T3 Main Backup1. Cai Jingfang Chng Jiajie

    2. Li Huan Nur Liyana Bte Roslie

    3. Zhang Jianfei Tan Kar Ann

    4. Tanvir Islam Jessica Chin Zet Sze

    T4 Main Backup

    1. Choy Qian Ning, J Liew Hui Sun2. Goh Khoon Hiang Li Yawen

    3. Hanyenkno Afi Tan Peck Luan

    4. Ng Xue Lin Sherilyn Wong Suet Teng, Melissa

    T5 Main Backup1. Joyeeta Biswas Ong Kian An

    2. Teo Sim Yee Stephanie Tan Yan Hao

    3. Wu Shujun Wang Ruohan

    4. Liu Na Zheng Yang

    T6 Main Backup

    1. Zhang Chao Wang Shuling2. Chua Yu Tong Laura Rasheilla Bte Rajah

    3. Koh Yi Ting Brenda Low Wei Chen Gerard J

    4. Siddhartha Gan Zhi Wei James

    10

    Since some students still have not tried at all

    Therefore, I have to assign 4 random students to do tutorial 5

    (Please just treat this as mid-test preparation, you have 1 week recess!)

  • 8/9/2019 T04 LL Stack Queue

    11/15

    Question 1 (Applications)

    Show us 7 applications of Stacks

    Show us 7 applications of Queues

    11

  • 8/9/2019 T04 LL Stack Queue

    12/15

    Question 2 (Stack: Reorder)

    Algorithm to reorder items using one stack!

    Requires thinking on Stack operations: push, pop, top/seek

    Hint: Try the sample input-output manually!

    Derive patterns and write your algorithm!

    12

  • 8/9/2019 T04 LL Stack Queue

    13/15

    Question 3 (Stack for Sorting)

    Find algorithm to sort items using two stacks!

    Requires thinking on Stack operations: push, pop, top/seek

    Hint: try sorting these simple numbers using two stacks:

    {7, 5} {5, 7}

    {1, 5, 3} {1, 3, 5}

    {4, 3, 2, 1} {1, 2, 3, 4}

    Derive patterns and write your algorithm!

    13

  • 8/9/2019 T04 LL Stack Queue

    14/15

    Question 4 (Queue)

    What if Queue ADT is implemented using TailedLinkedList

    but in different way!

    Think about the pros and cons of this strategy!

    14

  • 8/9/2019 T04 LL Stack Queue

    15/15

    Next Week (Recess)

    Use your recess week carefully!

    CS1102 midterm test is just RecessWeek.getNext()!

    For those who are assigned to do Tutorial 5, you have 1 week buffer!

    Recess != holiday!!

    However >.< I will be taking my holiday leave

    Going back to Jakarta 19-25 Sep 08

    You can email me but my response will be slower