mirror of
https://github.com/13hannes11/UU_la_parallel_programming_practical_assignments.git
synced 2024-09-04 00:50:58 +02:00
generealized to superclass set
This commit is contained in:
@@ -1,10 +1,13 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
#include <bits/stdc++.h>
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
#include"Node.cpp"
|
#include"Node.cpp"
|
||||||
|
#include"Set.cpp"
|
||||||
|
|
||||||
// TODO: implement fine grained locking
|
// TODO: implement fine grained locking
|
||||||
|
|
||||||
class FineSet {
|
class FineSet:public Set {
|
||||||
Node* first;
|
Node* first;
|
||||||
public:
|
public:
|
||||||
FineSet();
|
FineSet();
|
||||||
@@ -13,11 +16,7 @@ class FineSet {
|
|||||||
bool ctn(int element);
|
bool ctn(int element);
|
||||||
};
|
};
|
||||||
|
|
||||||
FineSet::FineSet(){
|
FineSet::FineSet() : Set() { }
|
||||||
first = Node::Dummy(); // dummy node;
|
|
||||||
Node* last = Node::Dummy();
|
|
||||||
first->next = last;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool FineSet::add(int element) {
|
bool FineSet::add(int element) {
|
||||||
this->first->lock();
|
this->first->lock();
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
#include <bits/stdc++.h>
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
#include"Node.cpp"
|
#include"Node.cpp"
|
||||||
|
#include"Set.cpp"
|
||||||
|
|
||||||
class LazySet {
|
class LazySet:public Set {
|
||||||
protected:
|
protected:
|
||||||
Node* first;
|
Node* first;
|
||||||
std::tuple<Node*, Node*> locate(int element);
|
std::tuple<Node*, Node*> locate(int element);
|
||||||
@@ -14,11 +17,7 @@ class LazySet {
|
|||||||
bool ctn(int element);
|
bool ctn(int element);
|
||||||
};
|
};
|
||||||
|
|
||||||
LazySet::LazySet(){
|
LazySet::LazySet() : Set() { }
|
||||||
first = Node::Dummy(); // dummy node;
|
|
||||||
Node* last = Node::Dummy();
|
|
||||||
first->next = last;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LazySet::add(int element) {
|
bool LazySet::add(int element) {
|
||||||
auto tuple = locate(element);
|
auto tuple = locate(element);
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
#include <bits/stdc++.h>
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
#include"Node.cpp"
|
#include"Node.cpp"
|
||||||
|
#include"Set.cpp"
|
||||||
|
|
||||||
class OptimisticSet {
|
class OptimisticSet:public Set {
|
||||||
protected:
|
protected:
|
||||||
Node* first;
|
Node* first;
|
||||||
bool validate(Node* p, Node* c);
|
bool validate(Node* p, Node* c);
|
||||||
@@ -14,11 +17,7 @@ class OptimisticSet {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
OptimisticSet::OptimisticSet(){
|
OptimisticSet::OptimisticSet() : Set() { }
|
||||||
first = Node::Dummy(); // dummy node;
|
|
||||||
Node* last = Node::Dummy();
|
|
||||||
first->next = last;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool OptimisticSet::add(int element) {
|
bool OptimisticSet::add(int element) {
|
||||||
Node* p;
|
Node* p;
|
||||||
|
|||||||
19
Assignment_2/Set.cpp
Normal file
19
Assignment_2/Set.cpp
Normal 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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user