adding starter code

This commit is contained in:
Jidong Xiao
2023-10-02 11:42:52 -04:00
parent 0a56ecb194
commit 0e43257b12
2 changed files with 111 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
#include <iostream>
#include <string>
#include <vector>
template <class T>
void print(std::vector<T> &data, const std::string &label) {
std::cout << label << " ";
for (int i = 0; i < data.size(); i++) {
std::cout << " " << data[i];
}
std::cout << std::endl;
}
template <class T>
void reverse(std::vector<T> &data) {
// FILL IN THIS FUNCTION
}
int main() {
std::vector<int> data;
data.push_back(1);
data.push_back(2);
data.push_back(3);
data.push_back(4);
data.push_back(5);
data.push_back(6);
data.push_back(7);
print(data,"before:");
reverse(data);
print(data,"after: ");
std::vector<std::string> data2;
data2.push_back("apple");
data2.push_back("banana");
data2.push_back("carrot");
data2.push_back("date");
print(data2,"before:");
reverse(data2);
print(data2,"after: ");
}

View File

@@ -0,0 +1,64 @@
#include <iostream>
#include <string>
// Note: It's ok that all the member variables are public for this
// tiny class. We'll build up to a more robust and complete linked
// list implementation in lecture 11.
template <class T>
class Node {
public:
T value;
Node<T> *ptr;
};
template <class T>
void print(Node<T> *data, const std::string &label) {
std::cout << label;
Node<T> *tmp = data;
while (tmp != NULL) {
std::cout << " " << tmp->value;
tmp = tmp->ptr;
}
std::cout << std::endl;
}
template <class T>
void reverse(Node<T>* &input) {
// FILL IN THIS FUNCTION
}
int main() {
// manually create a linked list of notes with 4 elements
Node<int>* my_list = new Node<int>;
my_list->value = 1;
my_list->ptr = new Node<int>;
my_list->ptr->value = 2;
my_list->ptr->ptr = new Node<int>;
my_list->ptr->ptr->value = 3;
my_list->ptr->ptr->ptr = new Node<int>;
my_list->ptr->ptr->ptr->value = 4;
my_list->ptr->ptr->ptr->ptr = NULL;
print(my_list,"my_list before");
reverse(my_list);
print(my_list,"my_list after ");
// Note: We are not deleting any of the Nodes we created... so this
// program has memory leaks! More on this in lecture 11.
}
// ===========================================================================