Metoda Backtracking
Exemplificam, în continuare, modul de lucru cu stiva: În stiva initial vida se introduce litera A, vârful stivei va fi la nivelul 1 (k-1);
În mod practic la scoaterea unei variabile din stiva, scade cu 1 valoarea variabilei ce indica vârful stivei, iar atunci când scriem ceva în stiva, o eventuala valoare reziduala se pierde: Pe un anumit nivel se retine, de regula, o singura informatie (litera sau cifra), însa este posibil; asa cum va rezulta din exemplele, prezentate în lucrare, sa avem mai multe informatii, caz în care avem de a face cu stive duble, triple, etc. Întreaga teorie a recursivitatii se bazeaza pe structura de tip stiva.
Prezentarea tehnicii Backtracking
Aceasta tehnica se foloseste în rezolvarea problemelor care îndeplinesc simultan urmatoarele conditii:
La întâlnirea unei astfel de probleme, daca nu cunoastem aceasta tehnica, suntem tentati sa generam toate elementele produsului cartezian A1,A2 .,An si fiecare element sa fie testat daca este solutie. Rezolvând problema în acest mod, timpul de executie este atât de mare, încât poate fi considerat infinit, algoritmul neavând nici o valoare practica.
De exemplu, daca dorim sa generam toate permutarile unei multimi finite A, nu are rost sa generam produsul cartezian AxAx.....xA, pentru ca apoi, sa testam, pentru fiecare element al acestuia, daca este sau nu permutare (nu are rost sa generam 1.1,1.......1, pentru ca apoi sa constatam ca nu am obtinut o permutare, când de la a doua cifra 1 ne puteam da seama ca cifrele nu sunt distincte).
Tehnica Backtracking are la baza un principiu extrem de simplu: