11.3.2. Accesul la un nod al unei liste circulare simplu inlantuite (LCSI)

2020/03/04 in Programare in C

Ca in cazul LSI si in cazul LCSI putem cauta un nod dupa o cheie sau mai multe chei. In cazul LSCI, cautarea va incepe cu nodul spre care pointeaza variabila globala ptrnod.

In continuare, se defineste functia ccnci care este analoaga functiei cnci definita in cazul LSI. Ea cauta un nod dupa o cheie numerica si returneaza una din valorile:

Amintim ca in acest caz tipul nodurilor listei se declara astfel:

typedef struct tnod {
   declaratii
   int cheie;
   declaratii
} TNOD;
TNOD *ccnci(int c) {
/* - cauta nodul de cheie=c;
   - returneaza pointerul spre nodul respectiv sau 0 daca el nu exista. */
   
   extern TNOD *ptrnod;
   TNOD *p;

   p = ptrnod;
   if (p == 0) /* lista vida */
      return 0;
   do {
      if (p -> cheie == c)
         return p;
      p = p-> urm;
   } while (p != ptrnod);
   return 0;
}

11.3.3. Inserarea unui nod LCSI