Skip to content

Commit 1ab177e

Browse files
committed
One more file PLUS deallocation in main
1 parent 7bd4207 commit 1ab177e

11 files changed

+314
-12
lines changed

4_0_students_linked_list.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ struct listNode {
1313

1414
typedef listNode * studentCollection;
1515

16+
void removeLinkedList(studentCollection &head);
17+
void addRecord(studentCollection& sc, int stuNum, int gr);
18+
double averageRecord(studentCollection sc);
19+
1620
int main()
1721
{
1822
studentCollection sc = nullptr;
@@ -30,6 +34,8 @@ int main()
3034
node3->next = nullptr;
3135
node1 = node2 = node3 = nullptr;
3236

37+
removeLinkedList(sc);
38+
3339
cin.get();
3440
return 0;
3541

@@ -61,3 +67,18 @@ double averageRecord(studentCollection sc)
6167
return average;
6268
}
6369

70+
void removeLinkedList(studentCollection &head)
71+
{
72+
73+
listNode * loopPtr = head;
74+
listNode * deleteNode;
75+
76+
while (loopPtr != nullptr)
77+
{
78+
deleteNode = loopPtr;
79+
loopPtr = loopPtr->next;
80+
delete deleteNode;
81+
}
82+
head = nullptr;
83+
return;
84+
}

4_0_variable_length_string.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,19 @@ int main()
3333
cout << "String to add: " << strToAdd << endl;
3434
concatenate(str1, strToAdd);
3535
cout << "After concatenate: " << str1 << endl;
36+
37+
for (int i = 0; i < 8; i++)
38+
{
39+
cout << "index " << i << endl;
40+
cout << "char " << str1[i] << endl;
41+
}
42+
3643
cout << (void*) str1 << " " << (void*)strToAdd << endl;
3744

45+
delete[] str;
46+
delete[] str1;
47+
delete[] strToAdd;
48+
3849
cin.get();
3950
return 0;
4051

@@ -60,6 +71,8 @@ void append(arrayString &str, char ch)
6071
str = newStr;
6172
}
6273

74+
75+
6376
void concatenate(arrayString &str1, arrayString str2)
6477
{
6578
int len1 = length(str1);
@@ -79,6 +92,8 @@ void concatenate(arrayString &str1, arrayString str2)
7992
str1 = newStr;
8093
}
8194

95+
96+
8297
int length(arrayString str)
8398
{
8499
int len = 0;
@@ -89,3 +104,6 @@ int length(arrayString str)
89104
return len;
90105
}
91106

107+
108+
109+

4_1_find_modes_variable_list.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ int main()
5656

5757
printModes(modesList);
5858

59+
delete[] numList;
60+
delete[] modesList;
61+
5962

6063
cin.get();
6164
return 0;

4_2_substring.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,16 @@ int main()
2828

2929

3030
int startPos = 3;
31-
int len = ;
31+
int len = 2;
3232

3333
arrayString newStr = substring(str, startPos, len);
3434

3535
cout << "The string: " << str << endl;
3636
cout << "The substring: " << newStr << endl;
3737

38+
delete[] str;
39+
delete[] newStr;
40+
3841
cin.get();
3942
return 0;
4043

@@ -45,8 +48,6 @@ arrayString substring(arrayString str, int startPos, int len)
4548
{
4649
arrayString newStr = new char[len+1];
4750

48-
startPos--;
49-
5051
int strLength = length(str);
5152

5253
for (int i = 0; i < len; i++)

4_3_replace_string.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ int main()
3131
replaceString(source, target, replaceText);
3232
printf("The result is: %s ", source);
3333

34+
delete[] source;
35+
delete[] target;
36+
delete[] replaceText;
37+
3438
cin.get();
3539
return 0;
3640

4_4_string_without_null_terminator.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ int main()
4242
cout << "\n";
4343
cout << (void*) str1 << " " << (void*)strToAdd << endl;
4444

45+
delete[] str;
46+
delete[] str1;
47+
delete[] strToAdd;
48+
4549
cin.get();
4650
return 0;
4751

4_5_remove_student_record.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ void printNodes(studentCollection sc);
1717
void addRecord(studentCollection& sc, int studNum, int gr);
1818
void removeRecord(studentCollection& sc, int studNum);
1919
double averageRecord(studentCollection sc);
20-
20+
void removeLinkedList(studentCollection &head);
2121

2222
int main()
2323
{
@@ -35,6 +35,8 @@ int main()
3535
printNodes(sc);
3636

3737
cout << "The average record is: " << averageRecord(sc) << endl;
38+
removeLinkedList(sc);
39+
3840

3941
cin.get();
4042
return 0;
@@ -110,3 +112,20 @@ double averageRecord(studentCollection sc)
110112
return average;
111113
}
112114

115+
116+
void removeLinkedList(studentCollection &head)
117+
{
118+
119+
listNode * loopPtr = head;
120+
listNode * deleteNode;
121+
122+
while (loopPtr != nullptr)
123+
{
124+
deleteNode = loopPtr;
125+
loopPtr = loopPtr->next;
126+
delete deleteNode;
127+
}
128+
head = nullptr;
129+
return;
130+
}
131+

4_6-8_linked_list_string.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ char characterAt(stringLinkedList str, int pos);
1717
void printString(stringLinkedList str);
1818
void concatenate(stringLinkedList &str1, stringLinkedList str2);
1919
void removeChars(stringLinkedList &str, int startIdx, int nrOfChars);
20+
void removeLinkedList(stringLinkedList &head)
2021

2122
int main()
2223
{
@@ -56,6 +57,9 @@ int main()
5657
printf("Removed %d characters starting from index %d running removeChars() function:\n", nrOfChars, startIdx);
5758
printString(str);
5859

60+
removeLinkedList(str);
61+
removeLinkedList(str2);
62+
5963
cin.get();
6064
return 0;
6165
}
@@ -202,6 +206,22 @@ void concatenate(stringLinkedList &str1, stringLinkedList str2)
202206
}
203207

204208

209+
void removeLinkedList(stringLinkedList &head)
210+
{
211+
212+
listNode * loopPtr = head;
213+
listNode * deleteNode;
214+
215+
while (loopPtr != nullptr)
216+
{
217+
deleteNode = loopPtr;
218+
loopPtr = loopPtr->next;
219+
delete deleteNode;
220+
}
221+
head = nullptr;
222+
return;
223+
}
224+
205225

206226

207227

4_9-10_integer_linked_list.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ typedef listNode * intLinkedList;
1515
void printInteger(intLinkedList integer);
1616
intLinkedList intToList(int num);
1717
intLinkedList sumIntLists(intLinkedList integer1, intLinkedList integer2);
18-
18+
void removeLinkedList(intLinkedList &head);
1919

2020
int main()
2121
{
@@ -32,6 +32,10 @@ int main()
3232
cout << "\nTheir sum is: ";
3333
printInteger(sum);
3434

35+
removeLinkedList(integer1);
36+
removeLinkedList(integer2);
37+
removeLinkedList(sum);
38+
3539
cin.get();
3640
return 0;
3741

@@ -99,5 +103,20 @@ void printInteger(intLinkedList integer)
99103
}
100104
}
101105

106+
void removeLinkedList(intLinkedList &head)
107+
{
108+
listNode * loopPtr = head;
109+
listNode * deleteNode;
110+
111+
while (loopPtr != nullptr)
112+
{
113+
deleteNode = loopPtr;
114+
loopPtr = loopPtr->next;
115+
delete deleteNode;
116+
}
117+
head = nullptr;
118+
return;
119+
}
120+
102121

103122

0 commit comments

Comments
 (0)