Pagina informaticii

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

Test de progres liste liniare simplu înlănţuite

Rândul 1

1. Scrieţi funcţia InsN care primind ca parametri un pointer la o listă simplu înlănţuită şi doi întregi n şi x, inserează după al n-lea nod din listă un nou nod ce va memora pe x. Dacă n este mai mic sau egal cu 0, atunci inserarea nodului se va face la începutul listei, iar dacă n este mai mare sau egal decât numărul nodurilor listei, inserarea se va face la sfârşitul listei.

2. Scrieţi funcţia Delete, care primind ca parametri un pointer la o listă simplu înlănţuită şi un întreg x, şterge din listă primul nod care memorează valoarea x. Dacă un astfel de nod nu există, nu se va efectua ştergerea.

3. Scrieţi funcţia Increasing, care primind ca parametru un pointer la o listă simplu înlănţuită, returnează 1 dacă nodurile listei memorează numere întregi ordonate crescător, sau returnează 0 dacă nodurile listei nu memorează valori în ordine crescătoare. De exemplu, lista cu informaţiile 2, 5, 8, 8, 90, 101 memorează numerele în ordine crescătoare, pe când lista 3, 7, 5, 8 nu memorează numerele în ordine crescătoare.

Rândul 2

1. Scrieţi funcţia Replace, care primind ca parametri un pointer la o listă simplu înlănţuită şi doi întregi a şi b, înlocuieşte cu valoarea b toate informaţiile din nodurile care memorează valoarea a.

2. Scrieţi funcţia Rotate, care primind ca parametru un pointer la o listă simplu înlănţuită care are cel puţin două noduri, mută primul nod la sfârşitul listei. De exemplu, dacă lista memorează valorile 1, 2, 3, 4, atunci după mutarea primului nod ordinea va fi 2, 3, 4, 1. Nu se vor utiliza ştergeri de noduri şi nici inserări. Se vor modifica numai adrese memorate de pointeri.

3. Scrieţi funcţia Create, care primind ca parametri un pointer L la o listă simplu înlănţuită iniţial vidă (deci L este transmis prin referinţă) şi un număr natural n, inserează în listă atâtea noduri câte cifre are n, fiecare nod având memorată câte o cifră din n. De exemplu, pentru n = 36791, lista L va conţine în final 5 noduri având informaţiile 3, 6, 7, 9, 1 în această ordine.

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 =