Uploaded by Ильяс Батырбеков


CSCI2520 Data Structures and Applications 2018-2019 Second Term
The Chinese University of Hong Kong
Assignment 1(Programming)
Expected time spent: 2-4 hours
Aims: To be familiar with the use of stack, queue, and hashtable in programming.
Programming Exercises:
Task1: Implement Queue using Two Stacks
In this task, you are given two stacks with their standard operations (Push, Pop, StackDepth,
StackIsEmpty) (use the stack implementation Version 2.2 described in the lecture note), implement
a queue with its standard operations (Enqueue, Dequeue, QueueLength, QueueIsEmpty).
Task2: Implement Stack using Two Queues
In this task, you are given two queues with their standard operations (Enqueue, Dequeue,
QueueLength, QueueIsEmpty) (use the queue implementation Version 3.0 described in the lecture
note), implement a stack with its standard operations (Push, Pop, StackDepth, StackIsEmpty).
Task3: Hash collisions
In this task, you are asked to implement a Hashtable ADT using (1) linear probing, (2) quadratic
probing, and (3) double hashing, respectively, and write an application program to compute the
number of collisions in a long random sequence of insertions using (1), (2), or (3).
 This is a voluntary assignment.
 You should submit a single file <Your ID>_PA1.zip. For different tasks, you should place the
relevant files in their separate directory (preferable naming them as task1, task2, and task3).
Submit the file via “CU Blackboard System”.
 Insert your name, student ID, and e-mail address as comments at the beginning of your source
/* CSCI2520
* Assignment: 1
* Task: Task index
* Student ID: You SID
* Name
: You name
* e-mail adr: You email