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 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…
Student Presentation T3 1.Koh Xianghua, Nicholas 2.N/A 3.Sean Lim Wei Xinq T4 1.Tan Miang Yeow (Done Last Week) 2.N/A 3.Chua Kien Chuan Chris T5 1.N/A 2.N/A 3.N/A T6 1.Kuganeswari D/O Kuhanesan 2.Chow Jian Ann 3.Chow Jian Ann 3 This week marks the end of this bidding system… Some students have not participate at all!
Question 1 (MovieDataAnalysis) Insert New Item (Movie ADT) to LinkedList –Ensure that you check for duplicate data! 4
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?
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:
Tutorial 5 Preview
Stack: Last In First Out (LIFO) Stack Implemented using Array with top pointer – Best Implementation? –Using Single Link List with head pointer, demo: – Stack
Queue First In First Out (FIFO) Queue implemented as Circular Array – 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…
Student Presentation T3MainBackup 1.Cai JingfangChng Jiajie 2.Li HuanNur Liyana Bte Roslie 3.Zhang JianfeiTan Kar Ann 4.Tanvir IslamJessica Chin Zet Sze T4MainBackup 1.Choy Qian Ning, JLiew Hui Sun 2.Goh Khoon HiangLi Yawen 3.Hanyenkno AfiTan Peck Luan 4.Ng Xue Lin SherilynWong Suet Teng, Melissa T5MainBackup 1.Joyeeta BiswasOng Kian An 2.Teo Sim Yee StephanieTan Yan Hao 3.Wu ShujunWang Ruohan 4.Liu NaZheng Yang T6MainBackup 1.Zhang ChaoWang Shuling 2.Chua Yu Tong LauraRasheilla Bte Rajah 3.Koh Yi Ting BrendaLow Wei Chen Gerard J 4.SiddharthaGan 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!)
Question 1 (Applications) Show us 7 applications of Stacks Show us 7 applications of Queues 11
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
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
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
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 Sep 08 –You can me but my response will be slower…