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

Preview:

Citation preview

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…

Recommended