generealized to superclass set

This commit is contained in:
2020-12-31 16:30:34 +01:00
parent 55b7225952
commit c4e62b1360
4 changed files with 34 additions and 18 deletions

View File

@@ -1,10 +1,13 @@
#pragma once
#include <bits/stdc++.h>
#include"Node.cpp"
#include"Set.cpp"
// TODO: implement fine grained locking
class FineSet {
class FineSet:public Set {
Node* first;
public:
FineSet();
@@ -13,11 +16,7 @@ class FineSet {
bool ctn(int element);
};
FineSet::FineSet(){
first = Node::Dummy(); // dummy node;
Node* last = Node::Dummy();
first->next = last;
}
FineSet::FineSet() : Set() { }
bool FineSet::add(int element) {
this->first->lock();

View File

@@ -1,8 +1,11 @@
#pragma once
#include <bits/stdc++.h>
#include"Node.cpp"
#include"Set.cpp"
class LazySet {
class LazySet:public Set {
protected:
Node* first;
std::tuple<Node*, Node*> locate(int element);
@@ -14,11 +17,7 @@ class LazySet {
bool ctn(int element);
};
LazySet::LazySet(){
first = Node::Dummy(); // dummy node;
Node* last = Node::Dummy();
first->next = last;
}
LazySet::LazySet() : Set() { }
bool LazySet::add(int element) {
auto tuple = locate(element);

View File

@@ -1,8 +1,11 @@
#pragma once
#include <bits/stdc++.h>
#include"Node.cpp"
#include"Set.cpp"
class OptimisticSet {
class OptimisticSet:public Set {
protected:
Node* first;
bool validate(Node* p, Node* c);
@@ -14,11 +17,7 @@ class OptimisticSet {
};
OptimisticSet::OptimisticSet(){
first = Node::Dummy(); // dummy node;
Node* last = Node::Dummy();
first->next = last;
}
OptimisticSet::OptimisticSet() : Set() { }
bool OptimisticSet::add(int element) {
Node* p;

19
Assignment_2/Set.cpp Normal file
View File

@@ -0,0 +1,19 @@
#pragma once
#include "Node.cpp"
class Set {
protected:
Set();
Node* first;
public:
virtual bool add(int element);
virtual bool rmv(int element);
virtual bool ctn(int element);
};
Set::Set(){
first = Node::Dummy(); // dummy node;
Node* last = Node::Dummy();
first->next = last;
}