Сравнить скорость динамического массива и односвязного списка

Нужно сравнить скорость динамического массива и односвязного списка, считывая 100 элементов. Если с динамическим массивом я как-то разобрался (хотя я сомневаюсь, что это правильно), то как сделать это со списком - понять не могу.

include <iostream>
#include<string>
#include <time.h>
 
using namespace std;
 
 
struct DynamicArray
{
    int counter = 0;
public:
    int size;
    int * arr;
    DynamicArray(int size_)
    {
        size = size_;
        arr = new int[size];
    }
 
 
    void Push_front(int value)
    {
        int* newArr = new int[size + 1];
        for (int j = 0, i = 1; j < size; j++, i++)
            newArr[i] = arr[j];
 
        newArr[0] = value;
        delete[] arr;
        size++;
        arr = newArr;
    }
 
    ~DynamicArray()
    {
        delete[] arr;
    }
};
 
struct LinkedList {
    struct Node {
 
        int val;
        Node* next;
 
        Node(int _val) : val(_val), next(nullptr) {}
    };
    Node* first;
    Node* last;
    int len = 0;
    LinkedList() : first(nullptr), last(nullptr) {}
 
    bool is_empty() {
        return first == nullptr;
    }
 
 
    void push_front(int key)
    {
        Node* node = new Node(key);
        node->val = key;
        node->next = first;
        first = node;
        len++;
    }
    void print() {
        if (is_empty()) return;
        Node* p = first;
        while (p) {
            cout << p->val << " ";
            p = p->next;
        }
        cout << endl;
    }
};
 
int main()
{
    srand(time(NULL));
    int size = 100;
 
 
    clock_t start = clock();
    DynamicArray arr(size);
    for (int i = 0; i < size; i++)
    {
        arr.Push_front(i);
    }
    for (int i = 0; i < size; i++)
        cout << arr.arr[rand() % size] << " ";
    clock_t end = clock();
    double seconds = (double(end - start)) / CLOCKS_PER_SEC;
    cout << "\n\nDynamic array:  " << seconds << " seconds.";
 
 
    LinkedList l;
    for (int i = 0; i < size; i++)
    {
        l.push_front(i);
    }
    for (int i = 0; i < size; i++)
       //???
    return 0;
}

Ответы (0 шт):