mirror of
https://github.com/13hannes11/UU_la_parallel_programming_practical_assignments.git
synced 2024-09-04 00:50:58 +02:00
fix segmentation fault by removing Node* in subclasses
This commit is contained in:
@@ -1,12 +1,9 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <bits/stdc++.h>
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
#include"Node.h"
|
#include"Node.h"
|
||||||
#include"Set.h"
|
#include"Set.h"
|
||||||
|
|
||||||
class FineSet:public Set {
|
class FineSet:public Set {
|
||||||
Node* first;
|
|
||||||
public:
|
public:
|
||||||
FineSet();
|
FineSet();
|
||||||
bool add(int element);
|
bool add(int element);
|
||||||
@@ -17,11 +14,13 @@ class FineSet:public Set {
|
|||||||
FineSet::FineSet() : Set("FineSet") { }
|
FineSet::FineSet() : Set("FineSet") { }
|
||||||
|
|
||||||
bool FineSet::add(int element) {
|
bool FineSet::add(int element) {
|
||||||
this->first->lock();
|
first->lock();
|
||||||
|
return true;
|
||||||
Node* p = this->first;
|
Node* p = this->first;
|
||||||
Node* c = p->next;
|
Node* c = p->next;
|
||||||
c->lock();
|
c->lock();
|
||||||
while (c->is_smaller_than(element)) {
|
while (c->is_smaller_than(element)) {
|
||||||
|
std::cout << "C: "<< c->next << std::endl;
|
||||||
p->unlock();
|
p->unlock();
|
||||||
p = c;
|
p = c;
|
||||||
c = c->next;
|
c = c->next;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
class LazySet:public Set {
|
class LazySet:public Set {
|
||||||
protected:
|
protected:
|
||||||
Node* first;
|
|
||||||
void locate(int element, Node* prev, Node* cur);
|
void locate(int element, Node* prev, Node* cur);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#include"Set.h"
|
#include"Set.h"
|
||||||
|
|
||||||
class MultiSet:public Set {
|
class MultiSet:public Set {
|
||||||
Node* first;
|
|
||||||
public:
|
public:
|
||||||
MultiSet();
|
MultiSet();
|
||||||
bool add(int element);
|
bool add(int element);
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
class OptimisticSet:public Set {
|
class OptimisticSet:public Set {
|
||||||
protected:
|
protected:
|
||||||
Node* first;
|
|
||||||
bool validate(Node* p, Node* c);
|
bool validate(Node* p, Node* c);
|
||||||
public:
|
public:
|
||||||
OptimisticSet();
|
OptimisticSet();
|
||||||
|
|||||||
Reference in New Issue
Block a user