联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2024-02-01 09:22

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 1 of 9

Assignment 2 (20% of total marks)

Due date: 15 February 2024, Thursday

Scope:

The tasks of this assignment cover the data structure and algorithm. The assignment

covers the topics discussed in topics 3 and 4.

The assignment is divided into two parts – Part One covers the theoretical aspect of the

materials discussed during classes, and Part Two covers the practicality of the concepts.

The total mark for Part One is 75, and Part Two is 25.

Assessment criteria:

Marks will be awarded for:

Correct,

Comprehensive, and

Appropriate

application of the materials covered in this subject.

Marks:

Total mark: 100

Weightage: 20% of total subject mark

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 2 of 9

Assignment Specification:

Part A: (75 marks)

Question 1 (25 marks)

a. The INORDER traversal output of a binary tree is A,B,N,O,R,M,A,L,L,Y and the

PREORDER traversal output of the same tree is Y,N,A,B,M,O,R,L,A,L. Construct the

tree and determine the output of the POSTORDER traversal output. (6.0 marks)

b. Given the following undirected graph:

Represent the graph as:

(i) Adjacency matrix (3.0 marks)

(ii) Adjacency list (3.0 marks)

(iii) Incidence matrix (3.0 marks)

c. Starting with an empty 2-4 tree, construct a 2-4 tree with the following keys. Show

the major working steps.

14, 12, 11, 13, 16, 15

(10.0 marks)

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 3 of 9

Question 2 (25 marks)

Do a dry run on the two algorithms (ALGORITHM 1 and ALGORITHM 2) shown

below.

ALGORITHM 1


End of function A2

Note: the function ENQUEUE only inserts a new element in the

queue if this element is different from NULL.

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 4 of 9

a) Briefly explain what the purposes of the two algorithms are and state the

asymptotic run-time complexity of each of the algorithms.

b) For the following Binary Search Tree (BST):

What is returned by the function call A1(root)?

(5.0 marks)

c) For the Binary Search Tree (BST) in part (b), provide a detail analysis on

the run-time complexity of the ALGORITHM 2, as explained in lecture.(5.0

marks)

d) Re-write the function A2, in pseudocode, using recursive function calls. You

may not use any form of iteration. (10.0 marks)

e) For a general Binary Search Tree (BST) of N elements, which of the two

algorithms A1 and A2, should you use? Give your choice and explain your

reasoning. (5.0 marks)

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 5 of 9

Question 3 (25 marks)

The data structure shown in Figure 1 depicts an implementation of a list of two

lists, that is, two linked list joined into one. In this example, the data structure is

implemented to group two separate lists of numbers, one consists of lists of even

numbers and the other consists of lists of odd numbers.

Two types of linked list are used in the above implementation. The node of the

main list (highlighted in grey) consists of a content field, a next node field, and a

next list field. The content node holds a value 0 for an odd list and a value 1 for

an even list. The node also contains two reference fields. The first is a ‘next node’

that links to the first node of a secondary list, and the second is a ‘next list’ that

links to the next link list.

The node of the secondary list (non-highlighted) consists of a content field and a

next node field. For an even list, the content holds an even number and for an

odd list, the content holds an odd number. The node has a ‘next node’ field that

link it to the next secondary list node.

Next Node

Next List

head

Next List

Next Node

Node from main list: Node from secondary list:

Next Node

Figure 1: A list of two lists

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 6 of 9

In a single linked list implemented in Java, this is the definition of a node:

class Node {

int data;

Node nextNode;

// Constructor to create a new node

// nextNode is by default initialized as null

Node(int d) { data = d; }

}

a) Assuming that the above definition is kept for the nodes of the secondary

lists, device a new definition of node for the nodes of the main list. Call this

type of node MainNode and use the names of pointers NextNode and NextList

respectively in your implementation. (5.0 marks)

b) Write the pseudocode of the function INSERT(head,x) that inserts a new

number in this data structure. If the number is even it must go to the second

secondary list, the list that starts with node 1 in the main list. Otherwise, it

must go to the first secondary list. Assume the data structure already has

the main list created and numbers are inserted at the start of the secondary

list. (5.0 marks)

c) Write the pseudocode of the function SEARCH(head,x) that returns TRUE if

the number x is in the data structure (in any of the secondary lists) and

FALSE otherwise. (5.0 marks)

d) Write the pseudocode of the function DELETE(head, b) that receives as input

arguments the head of the last of two lists and a Boolean value. The function

DELETE(head,b) deletes one of the main nodes. If b equals 0, then the node

storing number 0 is deleted. Otherwise, the main node storing number 1 is

deleted. Consider the following cases: the main list is empty and it has only

one node (node 0 or 1). (10.0 marks)

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 7 of 9

Part B: (25.0 marks)

Your task for this assignment is to investigate some of the properties of queues.

You should write a Java, C++, or Phyton program which simulates the queuing

system in an email server.

Queues are commonly used in network systems. For example, e-mail is placed in

queues while it is waiting to be sent and after it arrives at the recipient’s mailbox.

A problem occurs, however, if the outgoing mail processor cannot send one or

more of the messages in the queue. For example, a message might not be sent

because the recipient’s system is not available.

Write an e-mail simulator that processes mail at an average of 20 messages per

minute. As messages are received, they are placed in a queue. For the simulation,

assume that the messages arrive at an average rate of 30 messages per minute.

Remember, the messages must arrive randomly, so you will need to use a random

number generator to determine when messages are received.

Each minute, you can dequeue up to 20 messages and send them. Assume that

up to 25% of the messages in the queue cannot be sent in any processing cycle.

Again, you will need to use a random number to determine whether a given

message can be sent. If it cannot be sent, put it back at the end of the queue or

enqueue it.

Run the simulator for 15 minutes, tracking the number of times each message

had to be requeued. At the end of the simulation, print the statistics that show:

1 The total messages processed.

2 The average arrival rate, that is, the average number of messages arriving

per minute.

3 The average number of messages sent per minute.

4 The average number of messages in the queue in a minute.

5 The number of messages sent on the first attempt, the number of messages

sent on the second attempt, and so forth.

6 The average number of times messages had to be requeued (do not include

the messages sent the first time in this average.)

NOTE: Since the question is to assess your understanding of the concept of

Queue, you are NOT allowed to use the library of the language that implement

queue. You need to write the codes (implementation) of Queue for this exercise.

(See point (iii).)

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 8 of 9

Sample Output:

Please enter the total minutes to run: 30

Total number of messages processed : 565

Average arrival rate : 29.60

Average number of messages sent per minute : 28.7

Average number of messages in the queue per minute : 65.07

Number of messages sent on 1st attempt : 391

Number of messages sent on 2nd attempt : 87

Number of messages sent on 3rd attempt : 18

Number of messages sent on 4th attempt : 4

Number of messages sent on 5th attempt : 2

Average number of times messages had to be requeued : 1.30

Note: These are just sample answers to show the output format required from

your program. They are NOT necessarily the output that your program must

produce because the numbers shown were randomly generated.

Standard Requirements for Part B (Programming question):

(i) Java Version – JDK 6 update 17 or higher (Using Windows), or

(ii) C++ / C compiler – g++ 4.0 or higher (Using Windows or UBUNTU). In the event

that you use UBUNTU via VM, be careful with the memory function of the language

and make sure that the functions are used properly and do not cause any

segmentation error when the codes are compiled in Windows environment.

(iii) All coding must be your own work. Standard libraries of data structures and

algorithms such as STL may not be used.

(iv) Programs should be appropriately documented with comments.

(v) Execute your program and screen-capture the output. Include in your submission

all source code and libraries plus the screen-captures.

(vi) Students are to place all compilation and instructions on how to run the program

inside a readme.txt file. Your lecturer will refer to this file when marking. Without

a readme.txt or clear instructions for compilation, your lecturer will compile based

on his/her computer setting; any incompatibility, will deem as failure to compile

the program.

(vii) Submission filenames are to follow the naming convention given in the submission

instruction below. Do not use your own filename.

School of Computing and Information Technology University of Wollongong

CSCI203 – Data Structures and Algorithm, 2024 S1

SCIT, University of Wollongong, copyright 2024

Page 9 of 9

Submissions

This assignment is due by 9:00 pm Singapore time on Thursday, 15 February 2024.

For Part A, type or hand-written your answer for each question in a MS Word or

equivalent document format and save it in a pdf formatted file, name your file as

YourUOWStudentNumber-A2-SolPartA.pdf.

For Part B, the name of your program should be QueueSim.cpp, QueueSim.java, or

QueueSim.py depending on the programming language that you use to develop

your program. Execute your program and screen capture your output. Next, zip

your source code, libraries, readme.txt together with your screen capture and name

your file as YourUOWStudentNumber-A2-SolPartB.zip.

Zip together YourUOWStudentNumber-A2-SolPartA.pdf and

YourUOWStudentNumber-A2-SolPartB.zip and name your file as

YourUOWStudentNumber-A2.zip. Do not use your own filename.

All assignments that do not satisfy the submission requirements listed above will

not be evaluated and will be returned to the students with 0 marks.

Submit the files YourUOWStudentNumber-A2.zip through Moodle in the following

way:

1) Access Moodle at http://moodle.uowplatform.edu.au/

2) To login use a Login link located in the right upper corner the Web page or in

the middle of the bottom of the Web page

3) When successfully logged in, select a site CSCI203 (SP124) Algorithms and

Data Structures

4) Scroll down to a section Submissions of Assignments

5) Click at Submit your Assignment 2 here link.

6) Click at a button Add Submission

7) Move a file, for example, YourUOWStudentNumber-A2.zip into the

submission area. You can drag and drop files here to add them. You can also

use a link Add…

8) Click at a button Save changes,

9) Click at a button Submit assignment,

10) Click at the checkbox with a text attached: By checking this box, I confirm that

this submission is my own work, … in order to confirm authorship of your

submission,

11) Click at a button Continue.

A policy regarding late submissions is included in the subject outline.

Only one submission per student is accepted.

Assignment 2 is an individual assignment, and it is expected that all its tasks will be

solved individually without any cooperation with the other students. Plagiarism is treated

seriously. Students involved will likely receive zero. If you have any doubts, questions,

etc. please consult your lecturer or tutor during lab classes or over e-mail.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp