adjacency_matrix.hpp 779 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef ADJACENCY_MATRIX_HPP
  2. #define ADJACENCY_MATRIX_HPP
  3. #include <iostream>
  4. using namespace std;
  5. class AdjacencyMatrix{
  6. protected:
  7. size_t n;
  8. char* data;
  9. public:
  10. AdjacencyMatrix();
  11. ~AdjacencyMatrix();
  12. void init(size_t n);
  13. void clear();
  14. int get(size_t i,size_t j) const;
  15. void set(size_t i,size_t j);
  16. unsigned int get_diag_square_sym(size_t i) const;
  17. };
  18. inline
  19. AdjacencyMatrix::AdjacencyMatrix(){
  20. n=0;
  21. data=nullptr;
  22. }
  23. inline
  24. AdjacencyMatrix::~AdjacencyMatrix(){
  25. if(data!=nullptr) delete[] data;
  26. }
  27. inline void
  28. AdjacencyMatrix::clear(){
  29. for(size_t i=0;i<n*n;++i){
  30. data[i]=0;
  31. }
  32. }
  33. inline int
  34. AdjacencyMatrix::get(size_t i,size_t j) const{
  35. return data[i*n+j];
  36. }
  37. inline void
  38. AdjacencyMatrix::set(size_t i,size_t j){
  39. data[i*n+j]=1;
  40. }
  41. #endif