首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代写Java编程、代做program程序语言
项目预算:
开发周期:
发布时间:
要求地区:
NOTE: For this assignment, you need to refrain from using built-in implementations of
data structures (e.g., Java Collections Framework) and instead focus on manual
implementations using primitives or arrays. This approach is intended to deepen your
understanding of the underlying algorithms and enhance your problem-solving skills.
Project Overview:
In this project, students will implement a library of basic data structures using Java (or C++).
The library should include (at least 3 of) the following data structures and provide interfaces for
accessing their methods:
1. Linked List: Implement a singly linked list with basic operations such as insertion,
deletion, and traversal. Your linked list needs to have integer keys. (10 points)
2. Stack: Implement a stack with its defining operations: push, pop, top. Your stack needs
to save integer keys. (10 points)
3. Queue: Implement a queue with its defining operations: enqueue and dequeue. Your
queue needs to save integer keys. (10 points)
4. Min Heap: Implement a min heap with its defining operations: insert and extractMin. Your
heap needs to save integer keys. (12 points)
5. Binary Search Tree: Implement a binary search tree (BST) with the operations: insert,
delete, find, and inorder traversal. (13 points)
Project Requirements:
For each of the above data structures, students should:
● Provide a well-documented and organized codebase, following best practices for coding
style and commenting.
● Follow the Object-Oriented Programming (OOP) Approach: Implement each data
structure using a class-based approach. Each data structure should be encapsulated
within its own class with an interface to access the main methods, promoting code
modularity and reusability. Ensure proper use of class members (attributes and methods)
for encapsulation.
● Ensure Loose Coupling: Design your classes in a way that promotes loose coupling
between different data structures. Minimize dependencies between classes to make your
codebase modular and maintainable.
● User-Friendly Menu: Implement a guiding menu within your program that explains the
available options to the user. The menu should provide clear descriptions of each
operation the user can perform with the data structure(s). It should also handle user
input gracefully and provide meaningful output.
● Sample Output: Your program's menu system should resemble the sample provided in
the project description, as illustrated in the sample test cases. This means that the user
should interact with the program by selecting options, inputting data, and receiving
output in a structured and easily understandable format.
Sample Test Cases:
To demonstrate the data structures your program supports and guiding the user to the right
commands, your program needs to provide a menu of items that the user needs to do. This
menu can be similar to what is shown below:
1. Linked List: You can view a sample input and output of the required program here
below. This example demonstrates an interactive session where the user can add and
remove data from the Linked List and view its contents step by step.
Program: Please select the data structure you want to work with:
Enter 1 for Linked List
Enter 2 for Stack
Enter 3 for Queue
Enter 4 for Min Heap
Enter 5 for Binary Search Tree (BST)
You've selected Linked List.
What do you want to do with the Linked List?
1. Add Data
2. Remove Data
3. Display Linked List
4. Exit
Enter your choice (1/2/3/4): 1
Enter the data to add to the Linked List (-1 to end): 5
Enter the data to add to the Linked List (-1 to end): 10
Enter the data to add to the Linked List (-1 to end): 20
Enter the data to add to the Linked List (-1 to end): -1
What do you want to do with the Linked List?
1. Add Data
2. Remove Data
3. Display Linked List
4. Exit
Enter your choice (1/2/3/4): 3
Your Linked List looks like this:
5 -> 10 -> 20
What do you want to do with the Linked List?
1. Add Data
2. Remove Data
3. Display Linked List
4. Exit
Enter your choice (1/2/3/4): 2
Enter the data to remove from the Linked List (-1 to end): 10
Enter the data to remove from the Linked List (-1 to end): -1
What do you want to do with the Linked List?
1. Add Data
2. Remove Data
3. Display Linked List
4. Exit
Enter your choice (1/2/3/4): 3
Your Linked List looks like this:
5 -> 20
What do you want to do with the Linked List?
1. Add Data
2. Remove Data
3. Display Linked List
4. Exit
Enter your choice (1/2/3/4): 4
2. You can view a sample input and output of the required program here below. This
example demonstrates an interactive session where the user can push, pop and view
the top element from the Stack step by step.
Program: Please select the data structure you want to work with:
Enter 1 for Linked List
Enter 2 for Stack
Enter 3 for Queue
Enter 4 for Min Heap
Enter 5 for Binary Search Tree (BST)
You've selected Stack.
What do you want to do with the Stack?
1. Push Element
2. Pop Element
3. Top Element
4. Exit
Enter your choice (1/2/3/4): 1
Enter the data to push onto the Stack (-1 to end): 5
Enter the data to push onto the Stack (-1 to end): 10
Enter the data to push onto the Stack (-1 to end): 20
Enter the data to push onto the Stack (-1 to end): -1
What do you want to do with the Stack?
1. Push Element
2. Pop Element
3. Top Element
4. Exit
Enter your choice (1/2/3/4): 2
Popped element: 20
What do you want to do with the Stack?
1. Push Element
2. Pop Element
3. Top Element
4. Exit
Enter your choice (1/2/3/4/5): 3
Top element: 10
What do you want to do with the Stack?
1. Push Element
2. Pop Element
3. Top Element
4. Exit
Enter your choice (1/2/3/4): 4
3. You can view a sample input and output of the required program here below. This
example demonstrates an interactive session where the user can enqueue and dequeue
elements in a queue step by step.
Program: Please select the data structure you want to work with:
Enter 1 for Linked List
Enter 2 for Stack
Enter 3 for Queue
Enter 4 for Min Heap
Enter 5 for Binary Search Tree (BST)
You've selected Queue.
What do you want to do with the Queue?
1. Enqueue
2. Dequeue
3. Exit
Enter your choice (1/2/3): 1
Enter the data to enqueue (-1 to end): 5
Enter the data to enqueue (-1 to end): 10
Enter the data to enqueue (-1 to end): 20
Enter the data to enqueue (-1 to end): -1
What do you want to do with the Queue?
1. Enqueue
2. Dequeue
3. Exit
Enter your choice (1/2/3): 2
Dequeued element: 5
What do you want to do with the Queue?
1. Enqueue
2. Dequeue
3. Exit
Enter your choice (1/2/3): 1
Enter the data to enqueue (-1 to end): 25
Enter the data to enqueue (-1 to end): 30
Enter the data to enqueue (-1 to end): -1
What do you want to do with the Queue?
1. Enqueue
2. Dequeue
3. Exit
Enter your choice (1/2/3): 2
Dequeued element: 10
What do you want to do with the Queue?
1. Enqueue
2. Dequeue
3. Exit
Enter your choice (1/2/3): 3
4. You can view a sample input and output of the required program here below. This
example demonstrates an interactive session where the user can insert elements into
the Min Heap or extract the element with highest priority (extractMin) from the Min Heap
step by step.
Program: Please select the data structure you want to work with:
Enter 1 for Linked List
Enter 2 for Stack
Enter 3 for Queue
Enter 4 for Min Heap
Enter 5 for Binary Search Tree (BST)
You've selected Min Heap.
What do you want to do with the Min Heap?
1. Insert
2. ExtractMin
3. Exit
Enter your choice (1/2/3): 1
Enter the key to insert into the Min Heap (-1 to end): 15
Enter the key to insert into the Min Heap (-1 to end): 10
Enter the key to insert into the Min Heap (-1 to end): 20
Enter the key to insert into the Min Heap (-1 to end): -1
What do you want to do with the Min Heap?
1. Insert
2. ExtractMin
3. Exit
Enter your choice (1/2/3): 2
Min element extracted: 10
What do you want to do with the Min Heap?
1. Insert
2. ExtractMin
3. Exit
Enter your choice (1/2/3): 1
Enter the key to insert into the Min Heap (-1 to end): 5
Enter the key to insert into the Min Heap (-1 to end): 8
Enter the key to insert into the Min Heap (-1 to end): 12
Enter the key to insert into the Min Heap (-1 to end): -1
What do you want to do with the Min Heap?
1. Insert
2. ExtractMin
3. Exit
Enter your choice (1/2/3): 2
Min element extracted: 5
What do you want to do with the Min Heap?
1. Insert
2. ExtractMin
3. Exit
Enter your choice (1/2/3): 3
5. You can view a sample input and output of the required program here below. This
example demonstrates an interactive session where the user can insert new nodes,
delete nodes, find a node, and do inorder traversals on the elements from the Binary
Search Tree (BST) step by step.
Program: Please select the data structure you want to work with:
Enter 1 for Linked List
Enter 2 for Stack
Enter 3 for Queue
Enter 4 for Min Heap
Enter 5 for Binary Search Tree (BST)
You've selected Binary Search Tree (BST).
What do you want to do with the BST?
1. Insert Node
2. Delete Node
3. Find Node
4. Inorder Traversal
5. Exit
Enter your choice (1/2/3/4/5): 1
Enter the key to insert into the BST (-1 to end): 15
Enter the key to insert into the BST (-1 to end): 10
Enter the key to insert into the BST (-1 to end): 20
Enter the key to insert into the BST (-1 to end): -1
What do you want to do with the BST?
1. Insert Node
2. Delete Node
3. Find Node
4. Inorder Traversal
5. Exit
Enter your choice (1/2/3/4/5): 4
Inorder Traversal of the BST:
10 -> 15 -> 20
What do you want to do with the BST?
1. Insert Node
2. Delete Node
3. Find Node
4. Inorder Traversal
5. Exit
Enter your choice (1/2/3/4/5): 2
Enter the key to delete from the BST (-1 to end): 15
Enter the key to delete from the BST (-1 to end): -1
What do you want to do with the BST?
1. Insert Node
2. Delete Node
3. Find Node
4. Inorder Traversal
5. Exit
Enter your choice (1/2/3/4/5): 3
Enter the key to find in the BST: 20
Node found in the BST.
What do you want to do with the BST?
1. Insert Node
2. Delete Node
3. Find Node
4. Inorder Traversal
5. Exit
Enter your choice (1/2/3/4/5): 4
Inorder Traversal of the BST:
10 -> 20
What do you want to do with the BST?
1. Insert Node
2. Delete Node
3. Find Node
4. Inorder Traversal
5. Exit
Enter your choice (1/2/3/4/5): 5
Deadline and Presentation:
Students are expected to complete each piece of the Data Structure Library after it is posted on
eClass. All students must submit their completed work before November 30th, 2023. Students
need to present their work to the Course Director or the TAs, the details of which will be shared
later on eClass.
Marking Criteria:
Completeness:
For a successful completion of your project, you need to implement 3 working and sound data
structures of your choice from the list provided with a menu to interact with them. (30% of your
final mark)
You can choose to provide more data structures, any 5 extra points over the initial 30 points
required for your assignment will be counted as 2 bonus points towards your final mark. For
example, if you choose to implement all the data structures and they all work properly, you can
get a maximum of 10 extra marks added to your final mark of the course. The bonus points are
contingent on the additional data structures being implemented correctly and soundly.
Partial marks will be awarded as per instructor’s judgment.
Soundness:
If you choose to implement any of the data structures below, please make sure they are
satisfying all the requirements for the code and that data structure specifically.
● The Linked List needs to work properly and have the functions: insertion, deletion, and
traversal.
● The Stack needs to work properly and have the functions: push, pop, and top.
● The queue needs to work properly and have the functions: enqueue and dequeue.
● The Min Heap needs to work properly and have the functions: insert and extractMin.
● The Binary Search Tree needs to be working properly and have the functions: insert,
find, delete, and inorder traversal.
● The menu (user interface) does not need to be following the example, but it should
provide the means to work with the data structures implemented properly.
● A graphical user interface is not required and implementation of one does not grant extra
marks.
You can refer to the examples provided and test your program before presentations with the
sample input. You need to think about the scenarios that might end in an error. For example,if
you choose to implement a stack using arrays, a stack overflow error should be raised by the
program in case of an overflow.
Code Structure:
Code structure will be reviewed in the marking and presentation session. Therefore, you should
not be using any compiled code or built-in implementation of the data structures. Failure to
provide this requirement can lead to losing marks for the entire project. Please also make sure:
● Object Oriented Programming Approach is followed. Each data structure needs to be
enclosed in a class and interacted with using an interface.
● No implementation of the data structures should be in the main class.
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
urba6006代写、java/c++编程语...
2024-12-26
代做program、代写python编程语...
2024-12-26
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!