t04 ll stack queue
TRANSCRIPT
-
8/9/2019 T04 LL Stack Queue
1/15
Tutorial 4
Linked List, Stack, & Queue
-
8/9/2019 T04 LL Stack Queue
2/15
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
-
8/9/2019 T04 LL Stack Queue
3/15
Student Presentation
T31. Koh Xianghua, Nicholas
2. N/A
3. Sean Lim Wei Xinq
T41. Tan Miang Yeow (Done Last Week)
2. N/A3. Chua Kien Chuan Chris
T51. N/A
2. N/A
3. N/A
T61. Kuganeswari D/O Kuhanesan
2. Chow Jian Ann3. Chow Jian Ann
3
This week marks the end of this bidding system
Some students have not participate at all!
-
8/9/2019 T04 LL Stack Queue
4/15
Question 1 (MovieDataAnalysis)
Insert New Item (Movie ADT) to LinkedList
Ensure that you check for duplicate data!
4
-
8/9/2019 T04 LL Stack Queue
5/15
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 20072007 20072007 20082008 20062006
-
8/9/2019 T04 LL Stack Queue
6/15
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 As preference: Person Bs preference:
-
8/9/2019 T04 LL Stack Queue
7/15
Tutorial 5 Preview
-
8/9/2019 T04 LL Stack Queue
8/15
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
-
8/9/2019 T04 LL Stack Queue
9/15
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
-
8/9/2019 T04 LL Stack Queue
10/15
Student Presentation
T3 Main Backup1. 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 Backup
1. Choy Qian Ning, J Liew Hui Sun2. 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 Backup
1. Zhang Chao Wang Shuling2. 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 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!)
-
8/9/2019 T04 LL Stack Queue
11/15
Question 1 (Applications)
Show us 7 applications of Stacks
Show us 7 applications of Queues
11
-
8/9/2019 T04 LL Stack Queue
12/15
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
-
8/9/2019 T04 LL Stack Queue
13/15
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
-
8/9/2019 T04 LL Stack Queue
14/15
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
-
8/9/2019 T04 LL Stack Queue
15/15
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