Skip to content

Commit cd65251

Browse files
committed
corrected tasks
1 parent 0342663 commit cd65251

File tree

7 files changed

+60
-59
lines changed

7 files changed

+60
-59
lines changed

task_02/src/stack.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44
#include <stdexcept>
55

66
void Stack::Push(int value) {
7-
std::shared_ptr<Node> p(new Node(value));
7+
auto p = std::make_shared<Node>(value);
88
if (top == nullptr) {
99
top = p;
10-
}
11-
if (top != nullptr) {
10+
} else {
1211
p->next = top;
12+
top = p;
1313
}
14-
top = p;
1514
}
1615

1716
int Stack::Pop() {

task_02/src/test.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,5 +87,4 @@ TEST(MinStackTest, Behavior) {
8787
ASSERT_EQ(stack.GetMin(), 1); // Минимальный элемент остается 1
8888
ASSERT_EQ(stack.Pop(), 2); // Stack [2]
8989
ASSERT_EQ(stack.GetMin(), 2); // Минимальный элемент обновляется до 2
90-
ASSERT_EQ(stack.Pop(), 2); // Stack []
9190
}

task_04/src/heap.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
#include <iostream>
44
#include <vector>
55

6-
void Heap::SiftDown(int i) {
7-
while (2 * i + 1 < vec_.size()) {
8-
int left = 2 * i + 1;
9-
int right = 2 * i + 2;
10-
int j = left;
11-
if ((right < vec_.size()) && vec_[right] < vec_[left]) j = right;
12-
if (vec_[i] <= vec_[j]) break;
13-
std::swap(vec_[i], vec_[j]);
14-
i = j;
6+
void Heap::SiftDown(int cur_node) {
7+
while (2 * cur_node + 1 < vec_.size()) {
8+
int left = 2 * cur_node + 1;
9+
int right = 2 * cur_node + 2;
10+
int next_node = left;
11+
if ((right < vec_.size()) && vec_[right] < vec_[left]) next_node = right;
12+
if (vec_[cur_node] <= vec_[next_node]) break;
13+
std::swap(vec_[cur_node], vec_[next_node]);
14+
cur_node = next_node;
1515
}
1616
}
1717

@@ -22,37 +22,37 @@ void Heap::SiftUp(int i) {
2222
}
2323
}
2424

25-
int Heap::Find_Min() { return vec_[0]; }
25+
int Heap::FindMin() { return vec_[0]; }
2626

27-
int Heap::Extract_Min() {
27+
int Heap::ExtractMin() {
2828
int min = vec_[0];
2929
vec_[0] = vec_[vec_.size() - 1];
3030
vec_.pop_back();
3131
SiftDown(0);
3232
return min;
3333
}
3434

35-
std::vector<int> Heap::Copy_Heap() { return vec_; }
35+
std::vector<int> Heap::CopyHeap() { return vec_; }
3636

3737
void Heap::Insert(int value) {
3838
vec_.push_back(value);
3939
SiftUp(vec_.size() - 1);
4040
}
4141

42-
void Heap::Build_heap(std::vector<int> vec) {
42+
void Heap::BuildHeap(std::vector<int> vec) {
4343
for (int i = 0; i < vec.size(); ++i) {
4444
Insert(vec[i]);
4545
}
4646
}
4747

48-
int Find_Minimum(std::vector<int> vec) {
48+
int FindMinimum(std::vector<int> vec) {
4949
Heap heap;
50-
heap.Build_heap(vec);
51-
return heap.Find_Min();
50+
heap.BuildHeap(vec);
51+
return heap.FindMin();
5252
}
5353

54-
std::vector<int> Heap_Ready(std::vector<int> vec) {
54+
std::vector<int> HeapReady(std::vector<int> vec) {
5555
Heap heap;
56-
heap.Build_heap(vec);
57-
return heap.Copy_Heap();
56+
heap.BuildHeap(vec);
57+
return heap.CopyHeap();
5858
}

task_04/src/heap.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ class Heap {
77
void SiftDown(int i);
88
void SiftUp(int i);
99
void Insert(int value);
10-
int Find_Min();
11-
void Build_heap(std::vector<int> vec);
12-
int Extract_Min();
13-
std::vector<int> Copy_Heap();
10+
int FindMin();
11+
void BuildHeap(std::vector<int> vec);
12+
int ExtractMin();
13+
std::vector<int> CopyHeap();
1414

1515
private:
1616
std::vector<int> vec_;
1717
};
1818

19-
int Find_Minimum(std::vector<int> vec);
19+
int FindMinimum(std::vector<int> vec);
2020

21-
std::vector<int> Heap_Ready(std::vector<int> heap);
21+
std::vector<int> HeapReady(std::vector<int> heap);

task_04/src/test.cpp

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,31 @@
44

55
// Простое тестирование
66
TEST(heap, Simple) {
7-
ASSERT_EQ(Find_Minimum(std::vector<int>{1, 3, 5, 6, 2, 4}), 1);
8-
ASSERT_EQ(Find_Minimum(std::vector<int>{11, 37, 55, 34, -6, 0, 4}), -6);
9-
ASSERT_EQ(Heap_Ready(std::vector<int>{4, 1, 3, 2, 5}),
7+
ASSERT_EQ(FindMinimum(std::vector<int>{1, 3, 5, 6, 2, 4}), 1);
8+
ASSERT_EQ(FindMinimum(std::vector<int>{11, 37, 55, 34, -6, 0, 4}), -6);
9+
ASSERT_EQ(HeapReady(std::vector<int>{4, 1, 3, 2, 5}),
1010
(std::vector<int>{1, 2, 3, 4, 5}));
11-
ASSERT_EQ(Heap_Ready(std::vector<int>{3, 1, 5, 6, 2, 4}),
11+
ASSERT_EQ(HeapReady(std::vector<int>{3, 1, 5, 6, 2, 4}),
1212
(std::vector<int>{1, 2, 4, 6, 3, 5}));
1313
Heap heap;
14-
heap.Build_heap(std::vector<int>{1, 3, 5, 7, 9, 12, 324, 5, 47, 457, 9467, -4,
15-
758, -579, -4, 0});
16-
ASSERT_EQ(heap.Find_Min(), -579);
14+
heap.BuildHeap(std::vector<int>{1, 3, 5, 7, 9, 12, 324, 5, 47, 457, 9467, -4,
15+
758, -579, -4, 0});
16+
ASSERT_EQ(heap.FindMin(), -579);
1717
heap.Insert(23);
1818
heap.Insert(-1000);
19-
ASSERT_EQ(heap.Extract_Min(), -1000);
20-
ASSERT_EQ(heap.Find_Min(), -579);
19+
ASSERT_EQ(heap.ExtractMin(), -1000);
20+
ASSERT_EQ(heap.FindMin(), -579);
2121
}
2222

2323
// Тестирование поведения кучи при вставке элементов
2424
TEST(HeapTest, Insert) {
2525
Heap heap;
2626
heap.Insert(5);
27-
ASSERT_EQ(heap.Find_Min(), 5);
27+
ASSERT_EQ(heap.FindMin(), 5);
2828
heap.Insert(3);
29-
ASSERT_EQ(heap.Find_Min(), 3);
29+
ASSERT_EQ(heap.FindMin(), 3);
3030
heap.Insert(8);
31-
ASSERT_EQ(heap.Find_Min(), 3);
31+
ASSERT_EQ(heap.FindMin(), 3);
3232
}
3333

3434
// Тестирование поведения кучи при удалении элементов
@@ -37,10 +37,10 @@ TEST(HeapTest, ExtractMin) {
3737
heap.Insert(5);
3838
heap.Insert(3);
3939
heap.Insert(8);
40-
ASSERT_EQ(heap.Extract_Min(), 3);
41-
ASSERT_EQ(heap.Find_Min(), 5);
42-
ASSERT_EQ(heap.Extract_Min(), 5);
43-
ASSERT_EQ(heap.Find_Min(), 8);
40+
ASSERT_EQ(heap.ExtractMin(), 3);
41+
ASSERT_EQ(heap.FindMin(), 5);
42+
ASSERT_EQ(heap.ExtractMin(), 5);
43+
ASSERT_EQ(heap.FindMin(), 8);
4444
}
4545

4646
// Тестирование поведения кучи с отрицательными числами
@@ -49,9 +49,9 @@ TEST(HeapTest, NegativeNumbers) {
4949
heap.Insert(-5);
5050
heap.Insert(-3);
5151
heap.Insert(-8);
52-
ASSERT_EQ(heap.Find_Min(), -8);
53-
ASSERT_EQ(heap.Extract_Min(), -8);
54-
ASSERT_EQ(heap.Find_Min(), -5);
52+
ASSERT_EQ(heap.FindMin(), -8);
53+
ASSERT_EQ(heap.ExtractMin(), -8);
54+
ASSERT_EQ(heap.FindMin(), -5);
5555
}
5656

5757
// Тестирование поведения кучи с большим количеством элементов
@@ -60,17 +60,17 @@ TEST(HeapTest, LargeHeap) {
6060
for (int i = 0; i < 1000; ++i) {
6161
heap.Insert(i);
6262
}
63-
ASSERT_EQ(heap.Find_Min(), 0);
63+
ASSERT_EQ(heap.FindMin(), 0);
6464
for (int i = 0; i < 1000; ++i) {
65-
ASSERT_EQ(heap.Extract_Min(), i);
65+
ASSERT_EQ(heap.ExtractMin(), i);
6666
}
6767
}
6868

6969
// Тестирование поведения кучи при построении из вектора
7070
TEST(HeapTest, BuildHeap) {
7171
Heap heap;
72-
heap.Build_heap(std::vector<int>{5, 3, 8, 1, 2, 9});
73-
ASSERT_EQ(heap.Find_Min(), 1);
74-
ASSERT_EQ(heap.Extract_Min(), 1);
75-
ASSERT_EQ(heap.Find_Min(), 2);
72+
heap.BuildHeap(std::vector<int>{5, 3, 8, 1, 2, 9});
73+
ASSERT_EQ(heap.FindMin(), 1);
74+
ASSERT_EQ(heap.ExtractMin(), 1);
75+
ASSERT_EQ(heap.FindMin(), 2);
7676
}

task_07/src/AVL_Tree.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ int AVL_Tree::DifferenceH(Node *p) {
77
}
88

99
void AVL_Tree::Fixheight(Node *p) {
10-
unsigned char hl = Height(p->left);
11-
unsigned char hr = Height(p->right);
12-
p->height = (hl > hr ? hl : hr) + 1;
10+
unsigned char height_l = Height(p->left);
11+
unsigned char height_r = Height(p->right);
12+
p->height = (height_l > height_r ? height_l : height_r) + 1;
1313
}
1414

1515
Node *AVL_Tree::Insert(Node *root, int k) {

task_09/src/test.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44

55
#include "minimum_moneys.hpp"
66

7+
TEST(MinMoney, GreedyAlgorithmNotWorkHere){
8+
ASSERT_EQ(MinMoney(std::vector<int>{1, 3, 4}, 6), (2));
9+
}
10+
711
TEST(MinMoney, Simple) {
812
ASSERT_EQ(MinMoney(std::vector<int>{1, 2, 5, 10}, 14), (3));
913
ASSERT_EQ(MinMoney(std::vector<int>{1, 2, 5, 10}, 19), (4));
10-
ASSERT_EQ(MinMoney(std::vector<int>{1, 3, 4}, 6), (2));
1114
ASSERT_EQ(MinMoney(std::vector<int>{1, 2, 3, 4, 5, 6, 7, 8, 9}, 152), (17));
1215
ASSERT_EQ(MinMoney(std::vector<int>{1, 3, 4}, 34), (9));
1316
ASSERT_EQ(MinMoney(std::vector<int>{1, 2, 6, 7}, 12), (2));

0 commit comments

Comments
 (0)