// // Programmeermethoden 2023 // // http://www.liacs.leidenuniv.nl/~kosterswa/pm/dubbel.cc // C++-programma om te oefenen in het gebruik van pointers, deel 2. // Er moet een dubbelverbonden pointerlijst gefabriceerd worden, // waarbij de "elementen" die met elkaar verbonden worden bestaan uit // 1. Een int(eger) // 2. Een pointer naar het vorige element (of nullptr) // 3. Een pointer naar het volgende element (of nullptr) // Schrijf de functies afdrukken (2x) en bouwlijst. Gebruik een eigen // hulpfunctie voegvoor. // // Compiler: GNU g++ // Datum: 16 november 2023 // Auteur: Walter Kosters, Informatica Universiteit Leiden // email w.a.kosters@liacs.leidenuniv.nl // #include using namespace std; class element { public: element* vorige; int info; element* volgende; };//element class lijst { private: element* ingang; element* uitgang; public: lijst ( ); void afdrukkenVA ( ); void afdrukkenAV ( ); void bouwlijst (int n); };//lijst // +-----+ +-----+----+-----+ +-----+----+-----+ +-----+ // | --+----> | NULL| 10 | --+------> | | | 20 | NULL| <----+-- | // +-----+ +-----+--+-+-----+ +-----+--+-+-----+ +-----+ // L.ingang ^--------------- L.uitgang // // L.ingang (L van klasse lijst) wijst dus het eerste element uit een serie // elementen aan, waarbij ieder element informatie bevat (het info-veld), // en twee pointers: naar het vorige en volgende element; // voor het voorbeeld hierboven zijn in totaal twee new's nodig. //constructor lijst::lijst ( ) { ingang = nullptr; // of NULL uitgang = nullptr; // of NULL }//lijst::lijst // druk lijst af, van voor naar achter void lijst::afdrukkenVA ( ) { // TODO }//lijst::afdrukkenVA // druk lijst af, van achter naar voor void lijst::afdrukkenAV ( ) { // TODO }//lijst::afdrukkenAV // maak lijst met n elementen, bevattende 10,20,...,10*n void lijst::bouwlijst (int n) { // TODO }//lijst::bouwlijst int main () { lijst L; L.bouwlijst (3); L.afdrukkenVA ( ); L.afdrukkenAV ( ); return 0; }//main