Lista Dwukierunkowa oparta na klasach (C++)

0

Witam serdecznie,
Dodam na samym początku, że nie potrzebuję tego na żadne zaliczenie, natomiast chciałbym wiedzieć jak zaimplementować prostą listę dwukierunkową (obiektowo) w oparciu o klasy i metody (wyświetlanie listy, dodawanie elementów i ich usuwanie) z krótkim objaśnieniem (dlaczego w taki sposób?).
Czy jest ktoś, kto byłby w stanie spróbować mi wytłumaczyć implementację takiej listy dwukierunkowej?

3

Czy jest ktoś, kto byłby w stanie spróbować mi wytłumaczyć implementację takiej listy dwukierunkowej?

Myślę, że lista dwukierunkowa została już wytłumaczona milion razy w Internecie.

Pokaż co zrobiłeś i napisz na czym utknąłeś.

0

Ok, dzięki ;)

0

No dobra, zajawkę/ideę można dać przecież.

#include<iostream>
#include<string>
using namespace std;

template <class T>
class list{
private:
	struct element{
		element* next;
		element* previous;
		T value;
		element(const T& val):value(val), next(nullptr), previous(nullptr){}
	};

	element* root;

public:
	list() : root(nullptr){}
	void add(const T& val){
		element* newElement = new element(val);
		if(this->root == nullptr) this->root = newElement;
		else{
			newElement->next = this->root;
			this->root->previous = newElement;
			this->root = newElement;
		}
	}
};

int main(){
	list<string> test;
	test.add("Grzesiek");
	test.add("Tomek");
	test.add("Czesiek");
	return 0;
}

Zostaje jeszcze czyszczenie pamięci i usuwanie elementów - to z takich podstawowych rzeczy. W samej klasie możesz zapiąć jakieś metody typu kopiowanie jednej listy do drugiej, zamiana elementów i-tego z j-tym... takie tam rzeczy, żeby to się do czegoś tam nadawało. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1