Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using...

15
Tutorial 4 Linked List, Stack, & Queue

Transcript of Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using...

Page 1: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Tutorial 4Linked List, Stack, & Queue

Page 2: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Linked List: Revision• The concept of ADT List• ADT List using Array

– Pro & cons Discussed in T02Q3and 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<E> (slide 61-66) for a “bug-free”, “ready-to-use” LL

Done Last Week…

Page 3: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Student Presentation• T3

1. Koh Xianghua, Nicholas

2. N/A

3. Sean Lim Wei Xinq

• T41. Tan Miang Yeow (Done Last Week)

2. N/A

3. Chua Kien Chuan Chris

• T51. N/A

2. N/A

3. N/A

• T61. Kuganeswari D/O Kuhanesan

2. Chow Jian Ann

3. Chow Jian Ann

3This week marks the end of this bidding system…

Some students have not participate at all!

Page 4: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Question 1 (MovieDataAnalysis)

• Insert New Item (Movie ADT) to LinkedList– Ensure that you check for duplicate data!

4

Page 5: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

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 2007 2007 2007 2007 2008 2008 2006 2006

Page 6: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

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 A’s preference: Person B’s preference:

Page 7: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Tutorial 5 Preview

Page 8: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

• 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

Page 9: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

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…

Page 10: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Student Presentation• T3 Main Backup

1. 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 Backup1. Choy Qian Ning, J Liew Hui Sun

2. 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 Backup1. Zhang Chao Wang Shuling

2. 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 allTherefore, I have to assign 4 random students to do tutorial 5

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

Page 11: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Question 1 (Applications)

• Show us 7 applications of Stacks• Show us 7 applications of Queues

11

Page 12: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

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

Page 13: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

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

Page 14: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

Question 4 (Queue)

• What if Queue ADT is implemented using TailedLinkedListbut in different way!

• Think about the pros and cons of this strategy!

14

Page 15: Tutorial 4 Linked List, Stack, & Queue. Linked List: Revision The concept of ADT List ADT List using Array –Pro & cons  Discussed in T02Q3 and today.

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…