| queue(7) | Miscellaneous Information Manual | queue(7) |
queue - implementări ale listelor legate și ale cozilor de așteptare
Fișierul de antet <sys/queue.h> oferă un set de macrocomenzi care definesc și operează cu următoarele structuri de date:
Toate structurile suportă următoarele funcționalități:
Dimensiunea codului și timpul de execuție depind de complexitatea structurii de date utilizate, astfel încât programatorii trebuie să aibă grijă să o aleagă pe cea potrivită.
Listele legate individual sunt cele mai simple și acceptă doar funcționalitatea de mai sus. Listele legate individual sunt ideale pentru aplicațiile cu seturi de date mari și cu puține sau deloc eliminări sau pentru implementarea unei cozi LIFO. Listele legate individual adaugă următoarele funcționalități:
Cozile de așteptare legate individual adaugă următoarea funcționalitate:
Cu toate acestea:
Cozile de așteptare legate individual sunt ideale pentru aplicațiile cu seturi mari de date și cu puține sau deloc eliminări sau pentru implementarea unei cozi FIFO.
Toate tipurile de structuri de date dublu legate (liste și cozi de coadă) permit în plus:
Cu toate acestea:
Listele dublu legate sunt cele mai simple dintre structurile de date dublu legate. Acestea adaugă următoarele funcționalități față de cele de mai sus:
Cu toate acestea:
Cozile de așteptare adaugă următoarea funcționalitate:
Cu toate acestea:
Cozile circulare adaugă următoarele funcționalități față de cele de mai sus:
Cu toate acestea:
BSD.
Macrocomenzile <sys/queue.h> au apărut pentru prima dată în 4.4BSD.
Unele BSD-uri oferă SIMPLEQ în loc de STAILQ. Ele sunt identice, dar din motive istorice au fost denumite diferit pe diferite BSD-uri. STAILQ provine de pe FreeBSD, iar SIMPLEQ provine de pe NetBSD. Din motive de compatibilitate, unele sisteme furnizează ambele seturi de macrocomenzi. glibc furnizează atât STAILQ, cât și SIMPLEQ, care sunt identice, cu excepția unui echivalent SIMPLEQ lipsă pentru STAILQ_CONCAT().
circleq(3), insque(3), list(3), slist(3), stailq(3), tailq(3)
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
| 2 mai 2024 | Pagini de manual de Linux 6.9.1 |