Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<conio.h>
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- typedef struct utilaj {
- char *nume;
- int sect, an;
- struct utilaj *urm;
- } nod;
- nod *adauga(nod *p, char *nume, int sec, int an) {
- nod *q;
- q = (nod *) malloc(sizeof(nod));
- q->nume = (char *) malloc(strlen(nume) + 1);
- strcpy(q->nume, nume);
- q->sect = sec;
- q->an = an;
- q->urm = NULL;
- if (q == NULL || q->nume == NULL) {
- printf("ERROR");
- exit(0);
- }
- if (p == NULL)
- return q;
- else {
- q->urm = p;
- return q;
- }
- }
- void afisare(nod *p) {
- nod *q;
- q = p;
- while (q != NULL) {
- printf("\n%s", q->nume);
- printf("\n%d", q->sect);
- printf("\n%d", q->an);
- q = q->urm;
- }
- }
- void stergere(nod *prim,char *nume){
- nod *q,*prev;
- q=prim;
- if (q != NULL && strcmp(q->nume,nume)==0)
- {
- prim = q->urm;
- free(q);
- return;
- }
- while (q != NULL && strcmp(q->nume,nume)!=0)
- {
- prev = q;
- q = q->urm;
- }
- if (q == NULL) return;
- free(q);
- }
- int main() {
- int opt, sec, an;
- char nume[20];
- nod *prim = NULL;
- do {
- system("cls");
- printf("\n1.Introducere utilaj");
- printf("\n2.Afisare utilaje");
- printf("\n3.Stergere dupa nume");
- printf("\n4.Iesire\n");
- scanf_s("%d", &opt);
- switch (opt) {
- case 1:
- printf("\nnume:");
- scanf("%s", &nume);
- printf("\nsector: ");
- scanf("%d", &sec);
- printf("\nan:");
- scanf("%d", &an);
- prim = adauga(prim, nume, sec, an);
- break;
- case 2:
- afisare(prim);
- break;
- case 3:
- printf("\nnume de sters:");
- scanf("%s",&nume);
- stergere(prim,nume);
- }
- } while (opt < 4);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement