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.
Post on 03-Jan-2016
233 Views
Preview:
Transcript
Tutorial 4Linked List, Stack, & Queue
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…
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!
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?
5
20082008 2007 2007 2007 2007 2008 2008 2006 2006
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
– 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
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…
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!)
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 TailedLinkedListbut 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 19-25 Sep 08
– You can email me but my response will be slower…
top related