国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

代寫I&C SCI 46 、c/c++,Java程序語言代做
代寫I&C SCI 46 、c/c++,Java程序語言代做

時間:2024-11-22  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



I&C SCI 46 Fall 2024 Project 4: Finding Balance in Nature
Due at 9:30 AM. You may use late submissions as usual.
Reviewing related material
I encourage you to review your lecture notes for the Binary Search Tree portions of this class,
especially the portions about balancing trees. The data structure we covered this quarter for a
balanced tree is called a Crumple Tree. Supplemental reading is posted on Canvas.
Very important note: it is not enough to implement some type of binary search tree for this
assignment. For the vast majority of the points, your type must be a Crumple Tree. Attempting
to fool the auto-grader is a decidedly bad idea.
Requirements
In this project you will be implementing the Level-balanced tree data structure as a class named
CrumpleTree. The class consists of the following functions which you are responsible for
implementing and have been started for you in CrumpleTree.hpp:
CrumpleTree()
This is the constructor for the class. You should initialize any variables you add to the
class here.
~CrumpleTree()
This is the class destructor. You are responsible for freeing any allocated memory here.
You will most likely be allocating memory to store the nodes within the tree. Since these
allocations need to be dynamic, as we don’t know how large the tree will be, they should
be freed here in the destructor. It’s your job to come up with a traversal algorithm to
accomplish this. Note, if you elect to use shared pointers or unique pointers the compiler
will generate code to deallocate the memory for you if certain conditions are met. You
should only use these features of the standard library if you already understand them or
are willing to put in extra effort. In most industry settings features like these will be used
as opposed to explicitly implemented destructors.
However, be advised that course staff are not expected to know these and might not be
able to help you debug problems with them. If you are unfamiliar with shared or unique
pointers, use traditional (raw) pointers if you are expecting help with debugging.
[[nodiscard]] size_t size() const noexcept
This function returns the number of keys stored in the tree. It returns the count as a
size_t. It is marked const (also known as a constant member function) because it
should not modify any member variables that you’ve added to the class or call any
function functions that are not marked const as well. The advantage of marking this
function as const is that it can be called on constant CrumpleTree instances. It also
allows the compiler to make additional optimizations since it can assume the object this
function is called on is not changed. This is a fairly good StackOverflow answer that
goes into additional detail.
[[nodiscard]] bool empty() const noexcept
This function simply returns whether or not the tree is empty, or in other words, if the tree
contains zero keys. Marked const because it should not change any member data.
Marked noexcept because it should not throw any exceptions.
bool contains(const K & key) const noexcept
Simply checks to see if the key k is stored in the tree. True if so, false if not. Once
again, this function does not modify any member data, so the function is marked const.
Since this is a balanced tree, this function should run in O(log N) time where N is the
number of keys in the tree. This is accomplished through the on-demand balancing
property of Crumple Trees and a consequence of the height of the tree never exceeding
O(log N). IMPORTANT: when comparing keys, you can only assume that the < and ==
operator has been defined. This means you should not use any other comparison
operators for comparing keys.
std::optional<unsigned> Level(const K & key) const
This returns the level on which the given key is stored in the tree. If the tree does not
contain this key, return std::nullopt.
IMPORTANT: when comparing keys, you can only assume that the < and == operator
has been defined. This means you should not use any other comparison operators for
comparing keys.
Value & find(const K & key)
Like contains(), this function searches for key k in the tree. However, this function
returns a reference to the value stored at this particular key. Since this function is not
marked const, and it does not return a const reference, this value is modifiable through
this interface. This function should also run in O(log N) time since it is bound by the
height of the tree. If the key k is not in the tree, a std::runtime_error should be
thrown.
const Value & find(const K & key) const
Same as the constant version of find, but returns a constant reference to the stored
value, which prevents modification. This function is marked const to present the find
(or “lookup”) interface to instances of CrumpleTree which are marked const
themselves. This means that member data should not be modified in this function. For
example, the following code would call the version of find() marked constant:
CrumpleTree<int, int> tree;
const CrumpleTree<int, int> & treeRef= tree;
treeRef.find(1);
Warning: this function will not be compiled until you explicitly call it on a constant
CrumpleTree as in the example above. If you submit code to GradeScope, and that
system says it does not compile, make sure you've done this. You will end up with a
zero on the assignment if your code does not compile when I pair it with test cases that
call every function. Testing comprehensively is your responsibility!
void insert(const K & key, const V & value)
Adds a (key, value) pair to the tree. If the key already exists in the tree, you may do as
you please (no test cases in the grading script will deal with this situation). The key k
should be used to identify the location where the pair should be stored, as in a normal
binary search tree insertion. Since this is an level-balanced tree, the tree should be
rebalanced if this insertion results in an unbalanced tree.
Note: this is by far the most difficult part of this project.
void remove(const K & key)
Removes the given key from the tree, fixing the balance if needed. If the parameter does
not exist in the tree, do not modify the tree.
I recommend you work on both insert and remove in parts; do not attempt to do the
entire insert, or entire remove, in one session. Test that you are able to get some cases
to pass before moving onto other types of cases.
[[nodiscard]] std::vector<K> inOrder() const
Returns a vector consisting of the keys in the order they would be explored during an
in-order traversal as mentioned in class. Since the traversal is “in-order”, the keys should
be in ascending order.
IMPORTANT: this function, as well as preOrder() and postOrder(), are easy to forget to
test separately. Be very careful with these three, as their value (in terms of test cases
that rely on them) is disproportionately high. Please be absolutely sure you got these
right.
[[nodiscard]] std::vector<K> preOrder() const
Returns a pre-ordering of the tree. For the purpose of this assignment, the left subtree
should be explored before the right subtree.
[[nodiscard]] std::vector<K> postOrder() const
Returns a post-ordering of the tree. For the purpose of this assignment, the left subtree
should be explored before the right subtree.
Additional Notes
● Your implementation must be templated as provided.
○ Be sure yours works for non-numeric types! char is a numeric type.
○ Review the warnings in the lab manual, the grading policies, and in particular the
warning about templated code in the “Grading Environment” section.
● You do not need to write a copy constructor or an assignment operator on this project,
but knowing how to do so is generally a good thing.
● As stated in the contains() function: for comparing keys, use the “natural” comparison
offered by <. You should assume that < and == are defined for any object used for Key.
Any test cases provided will have something for the key that has this defined.
● The project will not build by default because a reference to a local variable is returned in
the find() functions. You will need to write an implementation that doesn’t do this.
Restrictions
Your implementation must be implemented via linked nodes in the tree format from the lecture.
That is, you may not have a “vector-based tree.” This means you will probably need to create a
new structure inside of your CrumpleTree class which will represent the nodes.
You may use smart pointers if you would like to do so. However, course staff are not required to
help you with smart pointers, including debugging code that uses them. I advise students who
are not already familiar with smart pointers to not use them for this project; they're good to
learn, but this is not the project on which to learn them.
You may not use any containers in the C++ standard template library in this assignment except
for std::vector. Furthermore, std::vector may only be used when implementing the
three traversals (in-order, pre-order, post-order). For what it’s worth, you won’t miss it for this
assignment. As always, if there’s an exception that you think is within the spirit of this
assignment, please let me know.
Your implementation does not have to be the most efficient thing ever, but it cannot be “too
slow.” In general, any test case that takes 30 seconds on GradeScope may be deemed a
wrong answer, even if it will later return a correct one. The memory check cases have a
significantly higher timeout period, and are cases which your code will very likely complete (if we
aren't running memcheck on the same code) in milliseconds.
For any assignment in this class, including this one, you may not use the directive using
namespace std; anywhere in your code. Doing so will earn you a zero for the project.
If you are found to be attempting to fool the auto-grader, perhaps by implementing a
different type of balanced binary search tree, this will be treated as a serious case of
academic dishonesty -- it will result in a report to AISC and an F in the class.
In the past, a small subset of students have attempted to contact the inventors of Crumple Trees
to get help on this project. This does not qualify as seeking reasonable help, and there are
plenty of UCI course resources available to you.
Additional Grading Note
This is an additional warning that the public tests are not comprehensive. Remember that the
compiler does not compile functions which are not used. Thus, at the bare minimum you should
add additional unit tests which get all of your code to compile. This has been a problem in the
past; do not ignore that warning. Using different template types will help to make sure you
don’t accidentally bake in assumptions about the type of the Key or Value. Always commit your
unit tests with your code.
The points available for this project are broken down into three categories:
● Basic BST functionality. To have your code tested to earn these points, you must pass
all test cases marked [RequiredBasicFunctionality]. Nothing in this portion requires that
you have a balanced tree, although it is possible that a poor implementation of balancing
could "break" this; please be careful. This portion is worth 1 point
● Crumple Tree functionality. To have your code tested to earn these points, you must
pass all test cases marked [RequiredCrumpleTree]. This portion is worth YY points.
Note that you do not need full CrumpleTree functionality to pass the required cases,
which would allow you to be evaluated on the remaining ones. This is one reason we
recommend you work with cases. This portion is worth 4 points.
○ There may be test cases within this that require only insertion procedure to work
correctly. However, the required case prerequisite requires you to get at least one
delete case to work properly. This is on purpose.
● Memory check. Some of these cases will require some simple functionality to be
reasonably efficient; this is due to a constraint with how long GradeScope will run a
submission. We test with small cases that would run quickly if we were not checking for
memory, and we give a good maximum amount of time for each to run (7-10 minutes
each). This portion is worth 1 point.
Frequently Asked Questions (FAQs)
Q1. Does _____ make problem-solving in this project trivial or is it allowed?
The following parts are permitted for use in this project: std::pair, std::max, std::abs,
std::swap. If you have another part of the standard library in mind, please ask on edStem.
Q2. Are we allowed to include the <functional> library so I can make a lambda function recursive?
Sure, if you think it will help you.
Q3. Can I include parts of the standard library to test my trees?
You can use any library for debugging purposes. The only disallowed functions are for the
final, active submission, submitted to GradeScope.
Q4. Can you use the vectors you got from the in-order, pre-order, or post-order functions in other
functions?
No. You also don't need to. However, you may use std::vector within helper functions of
in/pre/post order traversals.
Q5. Are we allowed to use stacks/queues for the inorder/postorder/preorder functions?
No. You are not allowed to use any standard containers except for in your traversal
implementations where you are allowed only std::vector.
Q6. Are we allowed to use vectors or arrays to store shapes?
No, but I'm sure you could do the same without using an array or vector.
Q7. Are > (greater than) and <= (equal to or greater than) off-limits when comparing keys?
Yes, any other operators other than < (less than) and == (equal to) are off-limits when
comparing keys.
Q8. Can I use recursion to destruct the trees?
You can use recursion for a destructor. However, you should also consider the off chance that
the stack size is exceeded and the destruction fails resulting in unfreed memory.
Q9. What to do if the passed in key does not exist in the remove() function?
You can handle this case as desired; we will not be testing it.
Q10. If the deleted node is not a leaf and has two children, should we replace it with successor or
predecessor?
Both are correct to do, and the grading script will accept either.
Q11. Do we need to have O(log n) time complexity for insert and remove?
That is the target time for balanced binary search trees, including Crumple trees.
Q12. Are we allowed to implement other level-balancing binary search trees on project 4?
No.
Q13. Are we expected to handle very large trees?
Yes, you can assume that the size of the tree will not exceed the maximum uint64_t value.
Q14. Am I permitted to add my new function to the class?
Yes. Also, it doesn’t matter where you make the helper functions as long as you don't change
the public functions and their parameters.

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp






 

掃一掃在手機打開當前頁
  • 上一篇:CPT205編程代寫、代做C++/Python語言程序
  • 下一篇:ECE2810J代做、代寫C++語言編程
  • ·&#160;代寫ICT50220、C++/Java程序語言代做
  • ·COMP222代寫、Python, Java程序語言代做
  • ·代寫MISM 6210、Python/java程序語言代做
  • ·代寫DTS203TC、C++,Java程序語言代做
  • ·CS 2210編程代寫、Java程序語言代做
  • 合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務 管路
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真技術服務
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲勞振動
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲
    流體cfd仿真分析服務 7類仿真分析代做服務40個行業
    流體cfd仿真分析服務 7類仿真分析代做服務4
    超全面的拼多多電商運營技巧,多多開團助手,多多出評軟件徽y1698861
    超全面的拼多多電商運營技巧,多多開團助手
    CAE有限元仿真分析團隊,2026仿真代做咨詢服務平臺
    CAE有限元仿真分析團隊,2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗證碼 豆包網頁版入口 破天一劍 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    国内揄拍国内精品少妇国语| 国产精品一区二区免费| 国产日韩欧美一二三区| 色婷婷av一区二区三区在线观看| 精品国产成人av在线免| 激情小说综合区| 日韩在线中文字| 视频一区视频二区视频三区视频四区国产| 国产精品自产拍在线观| 国产精品久久久| 黄色a级在线观看| 国产精品免费福利| 欧美性在线观看| 久久久999国产精品| 欧美日韩天天操| 国产精品无码专区在线观看| 青青草国产精品一区二区| 久久99精品久久久久久水蜜桃| 日本一区二区三区视频在线播放 | 欧美怡红院视频一区二区三区| 久久久久久av无码免费网站下载| 亚洲v日韩v综合v精品v| 91精品在线影院| 性色av一区二区咪爱| 国产精品96久久久久久| 熟女少妇精品一区二区| 国产激情片在线观看| 日韩精品电影网站| 国产精品久久在线观看| 国产亚洲精品久久久久久久| 欧美wwwxxxx| 99中文字幕在线观看| 亚洲精品视频一区二区三区| 久久久精品有限公司| 人妻无码视频一区二区三区| 精品国偷自产在线视频99| 欧美综合激情网| 国产精品久久国产精品| 国产一级做a爰片久久毛片男| 久久99久久亚洲国产| 7777精品视频| 欧美日韩一区综合| 久久亚洲国产成人| 99精品一级欧美片免费播放| 色婷婷精品国产一区二区三区| 丝袜亚洲欧美日韩综合| 黄色网在线视频| 久久99亚洲精品| 久久综合九色综合88i| 人人妻人人做人人爽| 国产精品高精视频免费| 99精品人妻少妇一区二区| 日韩精品在在线一区二区中文| 久久亚洲精品视频| 7777免费精品视频| 黄瓜视频免费观看在线观看www| 中文视频一区视频二区视频三区| 69av在线视频| 欧美高清中文字幕| 亚洲视频电影| 久久人人爽亚洲精品天堂| 国产欧美日韩最新| 亚洲丰满在线| 国产精品久在线观看| 91精品国产高清久久久久久| 黄页网站大全在线观看| 亚洲精品久久区二区三区蜜桃臀 | 欧美日韩国产成人| 久久久久一区二区| 国产做受69高潮| 亚洲免费精品视频| 国产精品视频在线观看| 91精品久久久久久久久青青| 欧美日韩精品综合| 一区二区三区四区国产| 久久久久久有精品国产| 国产精品一久久香蕉国产线看观看| 日本一区美女| 又粗又黑又大的吊av| 日韩中文字幕免费看| 白白操在线视频| 狠狠久久综合婷婷不卡| 日本一区视频在线观看| 欧美激情图片区| 国产精品视频一区二区高潮| 成人精品一区二区三区电影黑人 | 久久久久亚洲精品成人网小说| 国产欧美精品一区二区三区介绍| 人妻熟女一二三区夜夜爱| 伊人久久大香线蕉精品| 国产精品视频男人的天堂| 91国产美女视频| 国产精品一区二区三区观看| 欧美丰满熟妇xxxxx| 日本精品一区二区三区在线播放视频| 精品免费国产| 久久精品91久久久久久再现| 91精品一区二区三区四区| 国产在线不卡精品| 欧美极品视频一区二区三区| 日韩小视频在线播放| 亚洲 国产 欧美一区| 欧美日韩成人精品| 国产精品福利小视频| 国产成人免费av| 久草在在线视频| 国产高清精品一区二区三区| 97精品视频在线播放| 国产卡一卡二在线| 国产精品aaa| 欧美激情第6页| 日本伊人精品一区二区三区介绍| 欧美精品亚洲| 久久综合亚洲精品| 久久婷婷五月综合色国产香蕉 | 视频一区二区综合| 亚洲午夜精品久久久久久人妖| 国产精品果冻传媒潘| 精品国产一区二区三区久久久| 久久精品久久精品国产大片| 久久久福利视频| 777久久精品一区二区三区无码 | 成人精品小视频| 成人免费91在线看| 国产日韩精品久久| 国产亚洲精品网站| 国产日韩av高清| 国产欧美日韩亚洲| 国产亚洲欧美另类一区二区三区| 国产一区红桃视频| 国产原创中文在线观看| 蜜桃精品久久久久久久免费影院| 免费在线精品视频| 国产淫片av片久久久久久| 男人天堂新网址| 免费日韩中文字幕| 国产日韩精品在线| 国产伦精品一区二区三区高清版 | 无码少妇一区二区三区芒果| 欧美一区二区三区四区在线| 天堂一区二区三区| 日本不卡一区二区三区视频| 欧美一区深夜视频| 欧美凹凸一区二区三区视频| 日韩精品xxxx| 今天免费高清在线观看国语| 国严精品久久久久久亚洲影视| 国产又粗又猛又爽又黄的网站| 国产免费一区二区三区四在线播放 | 国产精品一区二区久久久久| 国产美女在线一区| 高清欧美精品xxxxx| 成人久久久久爱| 97久久精品人搡人人玩| 久章草在线视频| 日韩亚洲综合在线| 国产精品流白浆视频| 欧美激情一区二区三区久久久| 亚洲免费不卡| 品久久久久久久久久96高清| 激情综合网俺也去| 国产一区二区三区乱码| 91久色国产| 日韩视频在线免费观看| 国产精品成人v| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲一区二区三区四区视频| 日本伊人精品一区二区三区介绍| 欧美日韩精品免费观看视一区二区| 欧美成ee人免费视频| 国产伦精品一区二区三区免费视频 | 自拍视频一区二区三区| 日本精品视频在线观看| 欧美日韩国产精品一区二区| 免费看国产一级片| 97精品国产97久久久久久免费| 久久久久久久91| 欧美巨大黑人极品精男| 欧美一区二区大胆人体摄影专业网站 | www.久久色.com| 中文字幕一区二区三区四区五区六区| 亚洲国产精品影视| 黄频视频在线观看| 91精品国产电影| 久久精品中文字幕免费mv| 一区二区三区欧美成人| 日本久久久久亚洲中字幕| 精品一区二区视频| 久久免费国产视频| 欧美精品在线看| 日批视频在线免费看| 国产亚洲精品久久久久久久| 国产不卡av在线| 欧美激情一区二区三级高清视频| 欧洲精品亚洲精品| 97国产suv精品一区二区62| 国产精品免费一区二区三区都可以 | 99久久99| 国产精品久久电影观看| 日本在线观看不卡|