提供高质量的essay代写,Paper代写,留学作业代写-天才代写

首頁 > > 詳細

COMP9024 Assignment One

 COMP9024 Assignment One

Objectives
• Give you experience with doubly linked lists
• Understand how to solve set union, set intersection and longest sublist problems
• Give you practice with time complexity analysis
• Give you further practice with C and data structures
Admin
Marks 12 marks. Marking is based on the correctness and efficiency of your code. Your 
code must be well commented.
Group? This assignment is completed individually
Aims
In this assignment, you will implement a set of functions based on the doubly linked list 
defined in MyDLList.c.
The functions you need to implement are shown as follows:
1. DLList *CreateDLListFromFileDlist(const char *filename). This function creates a 
doubly linked list of integers by reading all integers from a text file named filename, 
and returns a pointer to the doubly linked list where each node stores one integer. Assume that adjacent integers in the file filename and the standard input are 
separated by one or more white space characters or a new line character. 
If filename is “stdin”, CreateDLListFromFileDlist (“stdin”) creates a doubly linked list 
by reading all integers from the standard input and the word end denotes the end of 
input. 
This function must check for invalid input. In case of invalid input, it prints an error 
message “Invalid input!” and returns NULL. (2 marks)
2. void printDLList(DLList *u ). This function prints all the elements (integers) of a doubly 
linked list pointed by u in the order from the first node to the last node in the list on 
the standard output, one element per line. (1 mark)
3. DLList *cloneList(DLList *u). This function creates an identical copy of a doubly linked
list u and returns a pointer to the list cloned. (1 mark) 4. DLList *longestSublist(DLList *u). This function returns a doubly linked list that is the 
longest sublist of u. The longest sublist v of a list u is defined as follows:
a. The greatest common divisor of all the elements (integers) of v is not 1 (we 
consider positive divisors only).
b. No other sublist of u contains more elements than v.
Consider a list u = {2, -6, 8, 15, 11,23, 20}. The longest sublist v of u is {2, -6, 8, 20}, 
and the greatest common divisor of all the elements of v is 2. 
Note that the longest sublist of a list may not be unique. Consider a list u = {2, 6, 4, 3, 
9}. There are two longest sublists: v1={2, 6, 4} and v2={6, 3, 9}. 
When analysing the time complexity of your algorithm, you may assume that the 
maximum integer of the input list is a constant. Under this assumption, it takes 
constant time O(1) to check if two integers are mutually prime (i.e., their only divisor 
is 1). (3 marks) 5. DLList *setUnion(DLList *u, DLList *v). This function computes the union of the two 
sets of integers that are stored in the doubly linked lists pointed by u and v, 
respectively, and returns a pointer to the doubly linked list that stores the union. Each 
element (int) of a set is stored in a node of the corresponding doubly linked list.
Given two sets A and B, the union of A and B is a set that contains all the distinct 
element of A and B. For example, assuming that A = {2, 8, 5, 7} and B = {5, 9, 6, 7}, A 
? B = {2, 8, 5, 7, 9, 6}. Note that in a set, all the integers are not necessarily sorted.
(2 marks) 6. DLList *setIntersection(DLList *u, DLList *v). This function computes the intersection 
of the two sets of integers that are stored in the doubly linked lists pointed by u and 
v, respectively, and returns a pointer to the doubly linked list that stores the 
intersection. Each element (int) of a set is stored in a node of the corresponding 
doubly linked list. (2 marks)
For simplicity, you may assume that all the elements of each input set are distinct 
for both set union and set intersection. Therefore, you do not need to check if a set 
contains duplicates.
Given two sets A and B, the intersection of A and B is a set that contains all the 
elements of A that are also in B. For example, assuming that A = {2, 8, 5, 7} and B = {5, 
9, 6, 7}, A ? B = {5, 7}.
7. void freeDLList(DLList *u). This function frees the space occupied by all the nodes of 
the doubly linked list pointed by u. (1 marks)
Time complexity analysis: For each function, you need to analyze its time complexity in terms 
of big-O notation and put your analysis as comments immediately before the code of the 
function. You may assume that each built-in I/O function such as printf(), malloc() and free(), 
takes O(1) time.
How to submit your code?
1. Go to the assignment one page
2. Click on Assignment Specfication
3. Click on Make Submission
4. Submit your MyDLList.c file that contains all the code.
Plagiarism
This is an individual assignment. Each student must work out his/her own solution without 
help from other people. In particular, it is not permitted to exchange code or pseudocode. 
You are not allowed to use code developed by persons other than yourself. All work 
submitted for assessment must be entirely your own work. We regard unacknowledged 
copying of material, in whole or part, as an extremely serious offence. For further 
information, see the Course Information.
聯系我們
  • QQ:1067665373
  • 郵箱:1067665373@qq.com
  • 工作時間:8:00-23:00
  • 微信:Badgeniuscs
熱點文章
程序代寫更多圖片

聯系我們 - QQ: 1067665373 微信:Badgeniuscs
? 2021 uk-essays.net
程序代寫網!

在線客服

售前咨詢
售后咨詢
微信號
Essay_Cheery
微信
全优代写 - 北美Essay代写,Report代写,留学生论文代写作业代写 北美顶级代写|加拿大美国论文作业代写服务-最靠谱价格低-CoursePass 论文代写等留学生作业代做服务,北美网课代修领导者AssignmentBack 北美最专业的线上写作专家:网课代修,网课代做,CS代写,程序代写 代码代写,CS编程代写,java代写北美最好的一站式学术代写服务机构 美国essay代写,作业代写,✔美国网课代上-最靠谱最低价 美国代写服务,作业代写,CS编程代写,java代写,python代写,c++/c代写 代写essay,作业代写,金融代写,business代写-留学生代写平台 北美代写,美国作业代写,网课代修,Assignment代写-100%原创 北美作业代写,【essay代写】,作业【assignment代写】,网课代上代考