Pagina informaticii

Teste de informatică pentru liceu, articole C#, C/C++, PHP

Liste dublu înlănţuite

1. Crearea bibliotecii de funcţii ldi.h, în care sunt definite toate operaţiile cu liste dublu înlănţuite:
- iniţializare lista vidă;
- test lista vidă;
- creare lista cu un nod;
- inserare (la început, după nodul referit de pointerul p, la sfârşit);
- ştergere (primul nod, nodul referit de p, ultimul nod);
- parcurgere (stânga-dreapta şi dreapta-stânga);
- căutare şi poziţionare pe primul nod care memorează informaţia x;
- poziţionare pe al k-lea nod;

2. Fişierul siruri.txt conţine pe prima linie două numere m şi n separate printr-un spaţiu. Pe linia a doua se află un şir de m numere naturale, iar pe a treia linie se află un şir de n numere naturale.
a) Să se scrie o funcţie care memorează cele două şiruri în două liste dublu înlănţuite
b) Să se scrie o funcţie care compară din punct de vedere lexicografic cele două liste
c) Să se scrie o funcţie care returnează 1 sau 0, după cum prima listă se poate sau nu se poate obţine din cea de a doua prin eventuala eliminare a unor noduri din lista a doua. De exemplu, dacă L1 = 3, 2, 5 şi L2 = 7, 4, 3, 1, 2, 4, 5, 6 atunci funcţia va returna 1 (L1 se obţine din L2).
d) Să se scrie o funcţie care elimină din prima listă toate nodurile care memorează numere pare.
e) Să se scrie o funcţie care inserează în prima listă după fiecare nod care memorează un multiplu de 3 valoarea x (x este transmis ca parametru).
f) Să se scrie o funcţie care returnează 1 dacă lista a doua este palindrom sau 0 în caz contrar.

Notă: Pentru implementarea mai rapidă a funcţiilor de la subiectul 2 se vor apela funcţiile bibliotecii ldi.h

Despre autor
Author

Dan Pracsiu deţinător www.dponline.ro
Profesor, Liceul Teoretic "Emil Racoviță" Vaslui
Membru în Comisia Naţională a Olimpiadelor de Informatică
Pasiuni: istoria, călătoriile, fotografia, muzica clasică

Scrie un comentariu
Nume:

Comentariu:

15 + 10 =