15
Tutorial 4 Linked List, Stack, & Queue

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

Embed Size (px)

Citation preview

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…