This shows you the differences between two versions of the page.
sd-ca:laboratoare:laborator-06 [2015/04/03 08:27] andrei.vasiliu2211 [Exerciții] |
sd-ca:laboratoare:laborator-06 [2015/04/07 10:24] (current) dragos.dimitriu [Exerciții] |
||
---|---|---|---|
Line 108: | Line 108: | ||
===== Exerciții ===== | ===== Exerciții ===== | ||
- | 1) [**4p**] Implementați în header-ul definit anterior funcțiile pentru o listă liniară dublu înlănțuită. | + | 1) [**5p**] Implementați în header-ul definit anterior funcțiile pentru o listă liniară dublu înlănțuită. |
- | * [**2p**] constructor, destructor(eliberați memoria folosită) și isEmpty. | + | * [**3p**] constructor, destructor(eliberați memoria folosită) și isEmpty. |
* [**1p**] addFirst și addLast. | * [**1p**] addFirst și addLast. | ||
- | * [**1p**] removeFirst si removeLast. | + | * [**1p**] removeFirst, removeLast si removeFirstOccurence. |
- | 2) [**3p**] Implementaţi o funcţie removeDuplicates şi demonstraţi funcţionarea acesteia printr-un cod simplist. Funcţia va trebui să elimine toate elementele duplicate din lista dublu înlănţuită. | + | 2) [**2p**] Implementați o stivă folosind liste. |
- | 3) [**4p**] Implementati inversarea unei liste simplu inlantuite, fara memorie auxiliara. | + | <code cpp stack.h> |
+ | #ifndef __STACK__H | ||
+ | #define __STACK__H | ||
+ | template<typename T> | ||
+ | class Stack { | ||
+ | public: | ||
+ | // Constructor | ||
+ | Stack(); | ||
+ | |||
+ | // Destructor | ||
+ | ~Stack(); | ||
+ | |||
+ | void push(T x); | ||
+ | T pop(); | ||
+ | T peek(); | ||
+ | int isEmpty(); | ||
+ | |||
+ | private: | ||
+ | // Vectorul de stocare. | ||
+ | LinkedList<T> stackList; | ||
+ | // De ce nu mai este nevoie sa retinem topLevel? | ||
+ | }; | ||
+ | #endif | ||
+ | </code> | ||
+ | |||
+ | 3) [**2p**] Implementați o coadă folosind liste. | ||
+ | |||
+ | <code cpp queue.h> | ||
+ | |||
+ | #ifndef __QUEUE_H | ||
+ | #define __QUEUE_H | ||
+ | |||
+ | template <typename T> | ||
+ | class Queue { | ||
+ | private: | ||
+ | // De ce nu mai este nevoie sa retinem head, tail si size? | ||
+ | LinkedList<T> queueList; | ||
+ | |||
+ | public: | ||
+ | // Constructor. | ||
+ | Queue(); | ||
+ | |||
+ | // Destructor. | ||
+ | ~Queue(); | ||
+ | |||
+ | void enqueue(T e); | ||
+ | T dequeue(); | ||
+ | T front(); | ||
+ | int isEmpty(); | ||
+ | }; | ||
+ | |||
+ | #endif | ||
+ | </code> | ||
+ | |||
+ | |||
+ | BONUS [**bragging rights**] Implementati inversarea unei liste simplu inlantuite, fara memorie auxiliara. | ||
Line 149: | Line 204: | ||
</code> | </code> | ||
- | 2) [**2p**] Implementați functia removeFirstOccurrence și demonstrați funcționarea acesteia printr-un cod simplist. | ||