Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // main.c
- #include "functii.h"
- int main(){
- int n, m;
- NOD *banda1 = NULL, *banda2 = NULL, *banda_contopita = NULL;
- scanf("%d%d", &n, &m);
- banda1 = populare_lista(banda1, n);
- banda2 = populare_lista(banda2, m);
- banda_contopita = contopire_benzi(banda1, banda2, banda_contopita);
- afisare(banda_contopita);
- }
- // functii.h
- #ifndef FUNCTII_H
- #define FUNCTII_H
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct NOD{
- char nr_inmatriculare[10];
- struct NOD *next;
- }NOD;
- NOD *creare_nod(char *);
- NOD *populare_lista(NOD *, int);
- NOD *contopire_benzi(NOD *, NOD *, NOD *);
- void afisare(NOD *);
- #endif
- // functii.c
- #include "functii.h"
- NOD *creare_nod(char nr[]){
- NOD *new_node = malloc(sizeof(NOD));
- strcpy(new_node -> nr_inmatriculare, nr);
- new_node -> next = NULL;
- return new_node;
- }
- NOD *populare_lista(NOD *head, int n){
- char nr[10];
- scanf("%s", nr);
- head = creare_nod(nr);
- NOD *nod = head, *new_node = NULL;
- for(int i=1; i<n; i++){
- scanf("%s", nr);
- new_node = creare_nod(nr);
- nod->next = new_node;
- nod = nod->next;
- }
- return head;
- }
- NOD *contopire_benzi(NOD *b1, NOD *b2, NOD *head){
- NOD *nod1 = b1, *nod2 = b2, *nod, *new_node;
- head = creare_nod(nod2->nr_inmatriculare);
- nod2 = nod2 -> next;
- nod = head;
- for(int i = 0; nod1 && nod2; i++)
- if(i%2){ // banda 2
- new_node = creare_nod(nod2->nr_inmatriculare);
- nod2 = nod2->next;
- nod -> next = new_node;
- nod = nod -> next;
- }
- else{ // banda 1
- new_node = creare_nod(nod1->nr_inmatriculare);
- nod1 = nod1->next;
- nod -> next = new_node;
- nod = nod -> next;
- }
- while(nod1){
- new_node = creare_nod(nod1->nr_inmatriculare);
- nod1 = nod1->next;
- nod -> next = new_node;
- nod = nod -> next;
- }
- while(nod2){
- new_node = creare_nod(nod2->nr_inmatriculare);
- nod2 = nod2->next;
- nod -> next = new_node;
- nod = nod -> next;
- }
- return head;
- }
- void afisare(NOD *head){
- NOD *nod = head;
- for(; nod; nod = nod -> next)
- printf("%s\n", nod->nr_inmatriculare);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement