From 4aa82d610893ef96ee24a15dd472df1c1c69beba Mon Sep 17 00:00:00 2001 From: Alessandro Ferro <49845537+xfarrow@users.noreply.github.com> Date: Mon, 31 May 2021 11:26:27 +0200 Subject: [PATCH] Library 5 fixed compile issues --- librerie/exercise5/Exercise5.pdf | Bin librerie/exercise5/build.sh | 2 +- librerie/exercise5/list/list.cpp | 0 librerie/exercise5/list/list.hpp | 4 +- librerie/exercise5/main.cpp | 0 librerie/exercise5/matrix/csr/matrixcsr.cpp | 131 ++++++++++++++---- librerie/exercise5/matrix/csr/matrixcsr.hpp | 11 +- librerie/exercise5/matrix/matrix.cpp | 4 +- librerie/exercise5/matrix/matrix.hpp | 6 +- librerie/exercise5/matrix/vec/matrixvec.cpp | 16 +-- librerie/exercise5/matrix/vec/matrixvec.hpp | 5 +- librerie/exercise5/vector/vector.cpp | 0 librerie/exercise5/vector/vector.hpp | 0 .../zlasdtest/binarytree/binarytree.hpp | 0 librerie/exercise5/zlasdtest/bst/bst.hpp | 0 .../zlasdtest/container/container.cpp | 0 .../zlasdtest/container/container.hpp | 0 .../zlasdtest/exercise1/fulltest.cpp | 0 .../zlasdtest/exercise1/simpletest.cpp | 0 .../exercise5/zlasdtest/exercise1/test.hpp | 0 .../zlasdtest/exercise2/fulltest.cpp | 0 .../zlasdtest/exercise2/simpletest.cpp | 0 .../exercise5/zlasdtest/exercise2/test.hpp | 0 .../zlasdtest/exercise3/fulltest.cpp | 0 .../zlasdtest/exercise3/simpletest.cpp | 0 .../exercise5/zlasdtest/exercise3/test.hpp | 0 .../zlasdtest/exercise4/fulltest.cpp | 0 .../zlasdtest/exercise4/simpletest.cpp | 0 .../exercise5/zlasdtest/exercise4/test.hpp | 0 .../zlasdtest/exercise5/fulltest.cpp | 0 .../zlasdtest/exercise5/simpletest.cpp | 0 .../exercise5/zlasdtest/exercise5/test.hpp | 0 .../exercise5/zlasdtest/iterator/iterator.hpp | 0 librerie/exercise5/zlasdtest/list/list.hpp | 0 .../exercise5/zlasdtest/matrix/matrix.hpp | 0 librerie/exercise5/zlasdtest/queue/queue.hpp | 0 librerie/exercise5/zlasdtest/stack/stack.hpp | 0 librerie/exercise5/zlasdtest/test.cpp | 0 librerie/exercise5/zlasdtest/test.hpp | 0 .../exercise5/zlasdtest/vector/vector.hpp | 0 librerie/exercise5/zmytest/test.cpp | 0 librerie/exercise5/zmytest/test.hpp | 0 42 files changed, 130 insertions(+), 49 deletions(-) mode change 100644 => 100755 librerie/exercise5/Exercise5.pdf mode change 100644 => 100755 librerie/exercise5/build.sh mode change 100644 => 100755 librerie/exercise5/list/list.cpp mode change 100644 => 100755 librerie/exercise5/list/list.hpp mode change 100644 => 100755 librerie/exercise5/main.cpp mode change 100644 => 100755 librerie/exercise5/matrix/csr/matrixcsr.cpp mode change 100644 => 100755 librerie/exercise5/matrix/csr/matrixcsr.hpp mode change 100644 => 100755 librerie/exercise5/matrix/matrix.cpp mode change 100644 => 100755 librerie/exercise5/matrix/matrix.hpp mode change 100644 => 100755 librerie/exercise5/matrix/vec/matrixvec.cpp mode change 100644 => 100755 librerie/exercise5/matrix/vec/matrixvec.hpp mode change 100644 => 100755 librerie/exercise5/vector/vector.cpp mode change 100644 => 100755 librerie/exercise5/vector/vector.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/binarytree/binarytree.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/bst/bst.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/container/container.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/container/container.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise1/fulltest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise1/simpletest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise1/test.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise2/fulltest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise2/simpletest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise2/test.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise3/fulltest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise3/simpletest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise3/test.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise4/fulltest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise4/simpletest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise4/test.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise5/fulltest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise5/simpletest.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/exercise5/test.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/iterator/iterator.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/list/list.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/matrix/matrix.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/queue/queue.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/stack/stack.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/test.cpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/test.hpp mode change 100644 => 100755 librerie/exercise5/zlasdtest/vector/vector.hpp mode change 100644 => 100755 librerie/exercise5/zmytest/test.cpp mode change 100644 => 100755 librerie/exercise5/zmytest/test.hpp diff --git a/librerie/exercise5/Exercise5.pdf b/librerie/exercise5/Exercise5.pdf old mode 100644 new mode 100755 diff --git a/librerie/exercise5/build.sh b/librerie/exercise5/build.sh old mode 100644 new mode 100755 index 69500a1..17349be --- a/librerie/exercise5/build.sh +++ b/librerie/exercise5/build.sh @@ -1,7 +1,7 @@ #! /bin/bash -g++ -O3 -o main \ +g++-10 -o main \ zlasdtest/exercise1/simpletest.cpp zlasdtest/exercise1/fulltest.cpp \ zlasdtest/exercise2/simpletest.cpp zlasdtest/exercise2/fulltest.cpp \ zlasdtest/exercise3/simpletest.cpp zlasdtest/exercise3/fulltest.cpp \ diff --git a/librerie/exercise5/list/list.cpp b/librerie/exercise5/list/list.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/list/list.hpp b/librerie/exercise5/list/list.hpp old mode 100644 new mode 100755 index f34c545..eaaac44 --- a/librerie/exercise5/list/list.hpp +++ b/librerie/exercise5/list/list.hpp @@ -29,9 +29,9 @@ protected: Node* next = nullptr; /* ********************************************************************** */ - + Node() = default; // Specific constructors - Node(const Data&); + Node(const Data&); /* ********************************************************************** */ diff --git a/librerie/exercise5/main.cpp b/librerie/exercise5/main.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/matrix/csr/matrixcsr.cpp b/librerie/exercise5/matrix/csr/matrixcsr.cpp old mode 100644 new mode 100755 index cae8ab6..13c0f0a --- a/librerie/exercise5/matrix/csr/matrixcsr.cpp +++ b/librerie/exercise5/matrix/csr/matrixcsr.cpp @@ -1,15 +1,22 @@ namespace lasd { +/* + + CONTROLLARE COLUMN RESIZE + MOVE CONSTRUCTOR + +*/ /* ************************************************************************** */ template MatrixCSR::MatrixCSR(){ + R.Resize(1); R[0] = &head; } template -MatrixCSR::MatrixCSR(const ulong& r, const ulong& c){ +MatrixCSR::MatrixCSR(const ulong r, const ulong c){ rows = r; columns = c; R.Resize(rows+1); @@ -31,19 +38,21 @@ MatrixCSR::MatrixCSR(const MatrixCSR& toCopy) : MatrixCSR(toCopy.rows, toC */ for(ulong i=0 ; i < (toCopy.R.Size()-1) ; ++i){ for(Node** ptr = toCopy.R[i] ; ptr!=toCopy.R[i+1] ; ptr = &( (*(*ptr)).next ) ){ - (*this)(i , ((*ptr)->value).second) = (*ptr)->value).first; + (*this)(i , ((*ptr)->value).second) = ((*ptr)->value).first; } } } template MatrixCSR::MatrixCSR(MatrixCSR&& toMove) noexcept{ + std::swap(rows, toMove.rows); std::swap(columns, toMove.columns); std::swap(size, toMove.size); std::swap(head, toMove.head); std::swap(R, toMove.R); + toMove.R.Resize(1); toMove.R[0] = &toMove.head; Node** oldHead = R[0]; @@ -58,30 +67,36 @@ MatrixCSR::~MatrixCSR(){ } template -MatrixCSR& MatrixCSR::operator=(const MatrixCSR& toCopy){ - MatrixCSR tmp(toCopy); - std::swap(*this, tmp); +MatrixCSR& MatrixCSR::operator=(const MatrixCSR& toCopy){ + MatrixCSR* tmp = new MatrixCSR(toCopy); + std::swap(*this, *tmp); delete tmp; return *this; } template -MatrixCSR& MatrixCSR::operator=(MatrixCSR&& toMove) noexcept{ - MatrixCSR tmp(std::move(toMove)); - std::swap(*this, tmp); +MatrixCSR& MatrixCSR::operator=(MatrixCSR&& toMove) noexcept{ + MatrixCSR* tmp = new MatrixCSR(std::move(toMove)); + std::swap(*this, *tmp); delete tmp; return *this; } template bool MatrixCSR::operator==(const MatrixCSR& toCompare) const noexcept{ + /* + * Check the # of rows, of columns and of elements. + * For each row, check if the nodes in that row have the same value (data and column). + * If one row ends before the other one, return false. + */ + if(columns == toCompare.columns && rows == toCompare.rows && size==toCompare.size){ for(ulong i=0 ; i<(R.Size()-1) ; ++i){ - for(Node** ptr1 = R[i], ptr2 = toCopy.R[i] ; ptr1!=R[i+1] && ptr2!=toCopy.R[i+1] ; ptr1 = &( (*(*ptr1)).next ) , ptr2 = &( (*(*ptr2)).next ) ){ + for(Node** ptr1 = R[i] , **ptr2 = (toCompare.R)[i] ; ptr1!=R[i+1] && ptr2!=toCompare.R[i+1] ; ptr1 = &( (*(*ptr1)).next ) , ptr2 = &( (*(*ptr2)).next ) ){ if( ( ((*ptr1)->value).first != ((*ptr2)->value).first ) || ( ((*ptr1)->value).second != ((*ptr2)->value).second )) return false; - if( (&((*(*ptr1)).next)==R[i+1] && &((*(*ptr2)).next) != toCopy.R.[i+1]) || (&((*(*ptr1)).next)!=R[i+1] && &((*(*ptr2)).next) == toCopy.R.[i+1])){ + if( (&((*(*ptr1)).next)==R[i+1] && &((*(*ptr2)).next) != toCompare.R[i+1]) || (&((*(*ptr1)).next)!=R[i+1] && &((*(*ptr2)).next) == toCompare.R[i+1])){ return false; } @@ -103,14 +118,15 @@ void MatrixCSR::RowResize(const ulong& new_row_size){ if(new_row_size == 0){ Clear(); } - else if(new_row_size > row){ + else if(new_row_size > rows){ R.Resize(new_row_size+1); for(ulong i=rows ; inext; @@ -133,21 +149,34 @@ void MatrixCSR::ColumnResize(const ulong& new_column_size){ columns = new_column_size; } else if(new_column_size < columns){ - Node** add; + Node** last; + Node** last_not_deleted; + Node* toDelete; for(ulong i=0 ; ivalue).second) >= new_row_size) break; + if(((*ptr)->value).second < new_column_size){ + last_not_deleted = &( (*(*ptr)).next ); + }else{ + toDelete = *ptr; + *ptr = (*(*ptr)).next; + delete toDelete; + --size; + } } - if(ptr!=R[i+1]){ - //? + for(ulong j=i+1 ; j -bool MatrixCSR::ExistsCell(const ulong& r, const ulong& c) noexcept{ - if(r>=row || c>=column) return false; +bool MatrixCSR::ExistsCell(const ulong& r, const ulong& c) const noexcept{ + if(r>=rows || c>=columns) return false; Node** ptr = R[r]; while(ptr != R[r+1]){ if( (**ptr).value.second == c ) return true; @@ -158,7 +187,7 @@ bool MatrixCSR::ExistsCell(const ulong& r, const ulong& c) noexcept{ template const Data& MatrixCSR::operator()(const ulong& r, const ulong& c) const{ - if(r>=row || c>=column) throw std::out_of_range("Tried to access position ["<=rows || c>=columns) throw std::out_of_range("Tried to access an invalid position!"); else{ Node** ptr = R[r]; while(ptr != R[r+1]){ @@ -171,24 +200,76 @@ const Data& MatrixCSR::operator()(const ulong& r, const ulong& c) const{ template Data& MatrixCSR::operator()(const ulong& r, const ulong& c){ - if(r>=row || c>=column) throw std::out_of_range("Tried to access position ["<=rows || c>=columns) throw std::out_of_range("Tried to access an invalid position!"); else{ Node** ptr = R[r]; - while(ptr != R[r+1]){ + Node** last = R[r+1]; // pointer to the pointer inside the last element of the r-th cell + + while(ptr != R[r+1] && ((**ptr).value.second <= c)){ if((**ptr).value.second == c){ return (**ptr).value.first; } else if( (**ptr).value.second < c ){ ptr = &((**ptr).next); } - else if((**ptr).value.second > c){ - Node** tmp = *ptr; - //? + } + + struct List>::Node* newNode = new Node; + struct List>::Node* nextNode = *ptr; + *ptr = newNode; + newNode->next = nextNode; + + if(last == ptr){ // the newely inserted element is the last one in its row + for(ulong i=r+1 ; inext); // assign the address of the pointer of the next node + } + else break; } } + return (newNode->value).first; } } +template +void MatrixCSR::Clear(){ + List>::Clear(); + columns = 0; + rows = 0; + size = 0; + R.Resize(1); +} + +template +void MatrixCSR::MapPreOrder(const typename MappableContainer::MapFunctor fun, void* par){ + List>::MapPreOrder( + [&fun](std::pair& datx, void* parx){fun(datx.first, parx); } + , par); +} + +template +void MatrixCSR::MapPostOrder(const typename MappableContainer::MapFunctor fun, void* par){ + List>::MapPostOrder( + [&fun](std::pair& datx, void* parx){fun(datx.first, parx); } + , par); +} + +template +void MatrixCSR::FoldPreOrder(const typename FoldableContainer::FoldFunctor fun, const void* par, void* acc) const{ + List>::FoldPreOrder( + [&fun](const std::pair& datx, const void* parx, void* accx) {fun(datx.first, parx, accx); } + , par , acc); +} + +template +void MatrixCSR::FoldPostOrder(const typename FoldableContainer::FoldFunctor fun, const void* par, void* acc) const{ + List>::FoldPostOrder( + [&fun](const std::pair& datx, const void* parx, void* accx) {fun(datx.first, parx, accx); } + , par , acc); +} + + + /* ************************************************************************** */ } diff --git a/librerie/exercise5/matrix/csr/matrixcsr.hpp b/librerie/exercise5/matrix/csr/matrixcsr.hpp old mode 100644 new mode 100755 index 14b5ea3..885071d --- a/librerie/exercise5/matrix/csr/matrixcsr.hpp +++ b/librerie/exercise5/matrix/csr/matrixcsr.hpp @@ -12,7 +12,7 @@ namespace lasd { template -class MatrixCSR : virtual public List, +class MatrixCSR : virtual public List>, virtual public Matrix{ // Must extend Matrix protected: @@ -20,11 +20,10 @@ protected: using Matrix::rows; using Matrix::columns; using List>::size; - - Vector>::Node**> R(1); + Vector>::Node**> R; using List>::head; - using struct List>::Node; + using typename List>::Node; /* Node @@ -42,7 +41,7 @@ public: /* ************************************************************************ */ // Specific constructors - MatrixCSR(const ulong&, const ulong&); // A matrix of some specified dimension + MatrixCSR(const ulong, const ulong); // A matrix of some specified dimension /* ************************************************************************ */ @@ -78,7 +77,7 @@ public: void RowResize(const ulong&) override; // Override Matrix member void ColumnResize(const ulong&) override; // Override Matrix member - bool ExistsCell(const ulong&, const ulong&) override noexcept; // Override Matrix member (should not throw exceptions) + bool ExistsCell(const ulong&, const ulong&) const noexcept override; // Override Matrix member (should not throw exceptions) Data& operator()(const ulong&, const ulong&) override; // Override Matrix member (mutable access to the element; throw out_of_range when out of range) const Data& operator()(const ulong&, const ulong&) const override; // Override Matrix member (immutable access to the element; throw out_of_range when out of range and length_error when not present) diff --git a/librerie/exercise5/matrix/matrix.cpp b/librerie/exercise5/matrix/matrix.cpp old mode 100644 new mode 100755 index 52e4c62..63dd444 --- a/librerie/exercise5/matrix/matrix.cpp +++ b/librerie/exercise5/matrix/matrix.cpp @@ -2,12 +2,12 @@ namespace lasd { template -ulong Matrix::RowNumber() noexcept{ +ulong Matrix::RowNumber() const noexcept{ return rows; } template -ulong Matrix::ColumnNumber() noexcept{ +ulong Matrix::ColumnNumber() const noexcept{ return columns; } diff --git a/librerie/exercise5/matrix/matrix.hpp b/librerie/exercise5/matrix/matrix.hpp old mode 100644 new mode 100755 index 648ed77..e7d0ae1 --- a/librerie/exercise5/matrix/matrix.hpp +++ b/librerie/exercise5/matrix/matrix.hpp @@ -47,13 +47,13 @@ public: // Specific member functions - ulong RowNumber() noexcept; // (concrete function should not throw exceptions) - ulong ColumnNumber() noexcept; // (concrete function should not throw exceptions) + ulong RowNumber() const noexcept; // (concrete function should not throw exceptions) + ulong ColumnNumber() const noexcept; // (concrete function should not throw exceptions) virtual void RowResize(const ulong&) = 0; virtual void ColumnResize(const ulong&) = 0; - virtual bool ExistsCell(const ulong&, const ulong&) noexcept = 0; // (concrete function should not throw exceptions) + virtual bool ExistsCell(const ulong&, const ulong&) const noexcept = 0; // (concrete function should not throw exceptions) virtual Data& operator()(const ulong&, const ulong&) = 0; // Mutable access to the element (concrete function should throw exceptions only when out of range) virtual const Data& operator()(const ulong&, const ulong&) const = 0; // Immutable access to the element (concrete function should throw exceptions when not present) diff --git a/librerie/exercise5/matrix/vec/matrixvec.cpp b/librerie/exercise5/matrix/vec/matrixvec.cpp old mode 100644 new mode 100755 index 1eaa023..a7bc319 --- a/librerie/exercise5/matrix/vec/matrixvec.cpp +++ b/librerie/exercise5/matrix/vec/matrixvec.cpp @@ -21,7 +21,7 @@ MatrixVec::MatrixVec(const MatrixVec& toCopy){ } template -MatrixVec::MatrixVec(MatrixVec&& toMove) noexcept{ +MatrixVec::MatrixVec(MatrixVec&& toMove) noexcept{ std::swap(rows, toMove.rows); std::swap(columns, toMove.columns); std::swap(size, toMove.size); @@ -34,7 +34,7 @@ MatrixVec::~MatrixVec(){ } template -MatrixVec& MatrixVec::operator=(const MatrixVec& toCopy){ +MatrixVec& MatrixVec::operator=(const MatrixVec& toCopy){ Clear(); rows = toCopy.rows; columns = toCopy.columns; @@ -47,7 +47,7 @@ MatrixVec& MatrixVec::operator=(const MatrixVec& toCopy){ } template -MatrixVec& MatrixVec::operator=(MatrixVec&& toMove) noexcept{ +MatrixVec& MatrixVec::operator=(MatrixVec&& toMove) noexcept{ Clear(); std::swap(rows, toMove.rows); std::swap(columns, toMove.columns); @@ -71,7 +71,7 @@ bool MatrixVec::operator!=(const MatrixVec& toCompare) const noexcept{ } template -void MatrixVec::RowResize(const ulong newdim){ +void MatrixVec::RowResize(const ulong& newdim){ Vector::Resize(newdim); } @@ -83,7 +83,7 @@ void MatrixVec::ColumnResize(const ulong& new_column_dim){ else if(new_column_dim != columns){ ulong limit = (new_column_dim < columns)? new_column_dim : columns; Data* tmp = new Data[rows * new_column_dim]{}; - for(ulong i=0 ; i::ColumnResize(const ulong& new_column_dim){ } template -bool MatrixVec::ExistsCell(const ulong& r, const ulong& c) noexcept override{ +bool MatrixVec::ExistsCell(const ulong& r, const ulong& c) const noexcept{ return (r const Data& MatrixVec::operator()(const ulong& r, const ulong& c) const{ if(ExistsCell(r,c)) return Elements[(r*columns)+c]; - else throw std::out_of_range("Tried to access position ["< Data& MatrixVec::operator()(const ulong& r, const ulong& c){ if(ExistsCell(r,c)) return Elements[(r*columns)+c]; - else throw std::out_of_range("Tried to access position ["< diff --git a/librerie/exercise5/matrix/vec/matrixvec.hpp b/librerie/exercise5/matrix/vec/matrixvec.hpp old mode 100644 new mode 100755 index 6bddbed..ce2fb0b --- a/librerie/exercise5/matrix/vec/matrixvec.hpp +++ b/librerie/exercise5/matrix/vec/matrixvec.hpp @@ -16,12 +16,13 @@ protected: using Matrix::rows; using Matrix::columns; using Vector::size; + using Vector::Elements; public: MatrixVec() = default; - MatrixVec(ulong&, ulong&); // A matrix of some specified dimension + MatrixVec(ulong, ulong); // A matrix of some specified dimension MatrixVec(const MatrixVec&); MatrixVec(MatrixVec&&) noexcept; @@ -37,7 +38,7 @@ public: // Specific member functions (inherited from Matrix) void RowResize(const ulong&) override; // Override Matrix member void ColumnResize(const ulong&) override; // Override Matrix member - bool ExistsCell(const ulong&, const ulong&) noexcept override; // Override Matrix member (should not throw exceptions) + bool ExistsCell(const ulong&, const ulong&) const noexcept override; // Override Matrix member (should not throw exceptions) Data& operator()(const ulong&, const ulong&) override; // Override Matrix member (mutable access to the element; throw out_of_range when out of range) const Data& operator()(const ulong&, const ulong&) const override; // Override Matrix member (immutable access to the element; throw out_of_range when out of range and length_error when not present) diff --git a/librerie/exercise5/vector/vector.cpp b/librerie/exercise5/vector/vector.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/vector/vector.hpp b/librerie/exercise5/vector/vector.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/binarytree/binarytree.hpp b/librerie/exercise5/zlasdtest/binarytree/binarytree.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/bst/bst.hpp b/librerie/exercise5/zlasdtest/bst/bst.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/container/container.cpp b/librerie/exercise5/zlasdtest/container/container.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/container/container.hpp b/librerie/exercise5/zlasdtest/container/container.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise1/fulltest.cpp b/librerie/exercise5/zlasdtest/exercise1/fulltest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise1/simpletest.cpp b/librerie/exercise5/zlasdtest/exercise1/simpletest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise1/test.hpp b/librerie/exercise5/zlasdtest/exercise1/test.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise2/fulltest.cpp b/librerie/exercise5/zlasdtest/exercise2/fulltest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise2/simpletest.cpp b/librerie/exercise5/zlasdtest/exercise2/simpletest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise2/test.hpp b/librerie/exercise5/zlasdtest/exercise2/test.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise3/fulltest.cpp b/librerie/exercise5/zlasdtest/exercise3/fulltest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise3/simpletest.cpp b/librerie/exercise5/zlasdtest/exercise3/simpletest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise3/test.hpp b/librerie/exercise5/zlasdtest/exercise3/test.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise4/fulltest.cpp b/librerie/exercise5/zlasdtest/exercise4/fulltest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise4/simpletest.cpp b/librerie/exercise5/zlasdtest/exercise4/simpletest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise4/test.hpp b/librerie/exercise5/zlasdtest/exercise4/test.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise5/fulltest.cpp b/librerie/exercise5/zlasdtest/exercise5/fulltest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise5/simpletest.cpp b/librerie/exercise5/zlasdtest/exercise5/simpletest.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/exercise5/test.hpp b/librerie/exercise5/zlasdtest/exercise5/test.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/iterator/iterator.hpp b/librerie/exercise5/zlasdtest/iterator/iterator.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/list/list.hpp b/librerie/exercise5/zlasdtest/list/list.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/matrix/matrix.hpp b/librerie/exercise5/zlasdtest/matrix/matrix.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/queue/queue.hpp b/librerie/exercise5/zlasdtest/queue/queue.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/stack/stack.hpp b/librerie/exercise5/zlasdtest/stack/stack.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/test.cpp b/librerie/exercise5/zlasdtest/test.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/test.hpp b/librerie/exercise5/zlasdtest/test.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zlasdtest/vector/vector.hpp b/librerie/exercise5/zlasdtest/vector/vector.hpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zmytest/test.cpp b/librerie/exercise5/zmytest/test.cpp old mode 100644 new mode 100755 diff --git a/librerie/exercise5/zmytest/test.hpp b/librerie/exercise5/zmytest/test.hpp old mode 100644 new mode 100755