Limbajul de Programare C - Liste

Proiect
7/10 (1 vot)
Domeniu: Automatică
Conține 6 fișiere: docx, cpp, exe, txt, o
Pagini : 13 în total
Cuvinte : 2206
Mărime: 13.97MB (arhivat)
Publicat de: Sonia Trifan
Puncte necesare: 7
UNIVERSITATEA DIN CRAIOVA FACULTATEA DE AUTOMATICA, CALCULATOARE SI ELECTRONICA

Extras din proiect

Liste

O lista este o colectie de elemente de informatie (noduri) aranjate intr-o anumita ordine. Lungimea unei liste este numarul de noduri din lista. Structura corespunzatoare de date trebuie sa ne permita sa determinam efficient care este primul/ultimul nod in structura si care este predecesorul/succesorul (daca exista) unui nod dat. Limbaju C ofera posibilitati de implementare a acestor structure atat static cat si dinamic.

Operatiile curente care se fac in liste sunt: inserarea unui nod, stergerea (extragerea) unui nod, concatenarea unor liste, numararea elementelor unei liste etc.

Implementarea unei liste se poate face in principal in doua moduri:

• Implementarea secventiala, in locatii successive de memorie, conform ordinii nodurilor in lista. Avantajele acestei tehnici sunt accesul rapid la predecesorul/succesorul unui nod si gasirea rapida a primului/ultimului nod. Dezavantajele sunt ca nu se foloseste intreaga memorie alocata listei.

• Implementarea inlantuita. Fiecare nod contine doua parti: informatia propriu-zisa si adresa nodului succesor. Alocarea memoriei fiecarui nod se poate face in mod dinamic, in timpul rularii programului. Accesul la un nod necesita parcurgerea tuturor predecesorilor sai, ceea ce poate lua ceva mai mult timp. Inserarea/stergerea unui nod este, in schimb, foarte rapida.

Listele se pot clasifica dupa numarul de legaturi in:

• liste simple

• liste duble

• liste circulare

O lista simpla are o singura legatura, legatura ultimului element este adresa NIL/NULL. Pentru a accesa lista avem nevoie de o variabila care sa pastreze adresa primului element (cap sau prim). O lista dubla are doua legaturi: legatura de tip urmator si legatura de tip precedent sau anterior. O lista circular este o lista in care, dupa ultimul nod, urmeaza primul, deci fiecare nod are succesor si predecessor.

Listele se pot clasifica dupa locul in care se fac operatiile de adaugare/eliminare astfel:

• stive

• cozi

Liste dublu inlantuite in Limbajul C.

O lista dublu inlantuita, spre deosebire de lista simplu inlantuita, presupune realizarea inlantuirii componentelor sale in ambele sensuri, de la prima component spre ultima si invers, de la ultima component spre prima component. In acest sens, in fiecare component, trebuie prevazute doua adrese de inlantuire (2 pointeri), una care sa precizeze adresa urmatoarei component din lista, si alta care sa precizeze adresa componentei anterioare, ca in exemplul urmator:

struct tipstudent

{

int matricol;

char nume[15]

char prenume[15];

float nota1;

float nota2;

float media;

struct tipstudent *urmator;

struct tipstudent *anterior;

}

var_student, primul_student, ultimul_student;

Tipul de date de mai sus declara structure recursive, in ambele sensuri, datorita campurilor “urmator” si “anterior”, care furnizeaza adresa urmatoarei component (nod), respective adresa componentei anterioare, si care nu sunt altceva decat pointeri spre structure de date de tipul celei din care fac parte insusi campurile respective (“urmator” si “anterior”).

In cazul listelor dublu inlantuite campul “urmator”, pentru ultimul nod, are valoarea nula NULL iar campul “anterior” pentru primul nod are, de asemenea, valoarea nula NULL.

Preview document

Limbajul de Programare C - Liste - Pagina 1
Limbajul de Programare C - Liste - Pagina 2
Limbajul de Programare C - Liste - Pagina 3
Limbajul de Programare C - Liste - Pagina 4
Limbajul de Programare C - Liste - Pagina 5
Limbajul de Programare C - Liste - Pagina 6
Limbajul de Programare C - Liste - Pagina 7
Limbajul de Programare C - Liste - Pagina 8
Limbajul de Programare C - Liste - Pagina 9
Limbajul de Programare C - Liste - Pagina 10
Limbajul de Programare C - Liste - Pagina 11
Limbajul de Programare C - Liste - Pagina 12
Limbajul de Programare C - Liste - Pagina 13

Conținut arhivă zip

  • cfree 5
    • cfree5_0_pro_setup.exe
  • Limbajul de Programare C - Liste.docx
  • liste dublu inlantuite.cpp
  • liste dublu inlantuite.exe
  • liste dublu inlantuite.o
  • practica.txt

Alții au mai descărcat și

Modelarea Matlab-Simulink a Unei Sere

Cunoasterea duratei de timp de la semanat pâna la rasaritul plantelor mai are însemnatate si pentru obtinerea unor productii cat mai timpurii. Daca...

Circuite logice secvențiale

In multe aplicatii este nevoie de un element care sa prezinte 2 stari diferite, cu posibilitatea de a trece dintr-o stare in cealalta, fara sau in...

Proiectare conceptuală

Cerintele sistemului operational Odata ce a fost definita nevoia si abordarea tehnica, e necesar sa le tranlatam intr-un “scenariu...

Te-ar putea interesa și

Automatizarea sistemului de întrare într-un garaj

PARTEA I Capitolul 1. Usi de garaj automate 1.1. Generalitãti Portile si usile de intrare în curte sau în garaj automatizate reprezintã solutia...

Programarea unui Lift

1. Scopul lucrării Scopul lucrării este cunoaşterea automatelor programabile din seria S7-200, a mediului de programare Step 7 Microwin32 şi a...

Automatizarea parcării unei companii cu un PLC S7-300

1. Controller Programabil Logic (PLC) 1.1. Introducere Ingineria controlată a evoluat de-a lungul timpului. Cândva, în trecut, oamenii erau...

Fox

Se studiaza: 1.1. Notiuni, concepte si modele utilizate în organizarea datelor " Fisiere, baze de date si Sisteme de Gestiune a Bazelor de Date...

Comanda cu automat programabil a unei mașini de găurit radiale

REZUMAT Prezenta lucrare are ca obiectiv principal modernizarea schemei de comandă a unei maşini de găurit radiale prin înlocuirea releelor şi a...

Automate programabile

Un controler logic programabil sau automat programabil, este un calculator industrial care îndeplinește funcții de control discrete sau continue...

Automate Programabile

Definire. Un automat programabil este un “calculator” specializat care realizeaza functii de control de o diversitate de tipuri si nivele de...

Automate programabile

CAPITOLUL 1 SISTEMELE DE CALCUL ȘI CONTROLUL INDUSTRIAL 1.1. Introducere Foarte puține instalații industriale pot funcționa singure și...

Ai nevoie de altceva?