Cuprins
- 1.1. Crearea şi afişarea unei liste 2
- 1.2. Ştergerea de noduri din listă 4
- 1.3. Inserarea de noduri în listă 5
- 1.3.1. Înserarea la începutul listei 5
- 1.3.2. Înserarea la sfârşitul listei 6
- 1.3.3. Înserarea unui nod după un alt nod 6
- 1.4. Programul complet 8
Extras din laborator
1.1. Crearea şi afişarea unei liste
Exerciţiul 1. Să se scrie programul pentru crearea unei liste simplu înlănţuite cu preluarea datelor de la tastatură. Sfârşitul introducerii datelor este marcat standard (CTRL+Z). După creare, se va afişa conţinutul listei apoi se va elibera memoria ocupată.
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#define NEW (NOD*)malloc(sizeof(NOD));
struct lista
{
int info;
lista *next;
};
typedef struct lista NOD;
NOD* creare()
{
NOD *prim,*ultim,*q;
int nr;
printf(" primul nr=");
scanf("%i",&nr); // se citeşte primul număr
prim=(NOD*)malloc(sizeof(NOD));
prim->info=nr; // se creează primul nod
prim->next=NULL;
ultim=prim; // se creează ultimul nod
printf("n urmatorul nr sau tastati CTRL+Z pentru iesire) = ");
scanf("%i",&nr); // se citeşte al doilea număr
while(!feof(stdin)) // atâta timp cât nu introducem CTRL+Z
{
q=(NOD*)malloc(sizeof(NOD));
q->info=nr; // se creează nodul următor
q->next=NULL;
ultim->next=q;
ultim=q; // se creează ultimul nod
printf("n urmatorul nr sau tastati CTRL+Z pentru iesire)= ");
scanf("%i",&nr); // se citeşte numărul următor
}
return prim;
}
void afis(NOD* prim)
{
printf("n");
printf("n Lista este");
while(prim!=NULL) // atâta timp cât p este diferit de NULL
{
printf("t n%i",prim->info); // se afişează nodul curent
prim=prim->next; // se trece la următorul nod
}
}
void stergere (NOD* prim)
{
NOD *p;
while(prim) // atâta timp cât prim este diferit de NULL
{
p=prim; // p devine primul nod
prim=prim->next; // prim devine următorul nod
free(p); // se eliberează nodul curent
}
}
void main()
{
NOD *prim;
int a,b,c,d,e,f,g;
clrscr();
// Creare
prim=creare();
afis(prim);
// Eliberare memorie
stergere(prim);
getch();
}
Preview document
Conținut arhivă zip
- 03[1]. Liste simplu inlantuite (rezumat studenti).doc
- 05[1]. Stive (rezumat studenti).doc
- 06[1]. Arbori (rezumat studenti).doc