ioana_martin98

Untitled

May 24th, 2019
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "string.h"
  3. #include "malloc.h"
  4. struct Lista
  5. {
  6.     char* numeStudent;
  7.     int grupa;
  8.     Lista* pNext;
  9. };
  10. Lista* creareElement(char*, int);
  11. Lista* inserareHead(Lista*, Lista*);
  12. void inserareTail(Lista**, Lista*);
  13. //void inserareTail(Lista*&, Lista*);
  14. void main()
  15. {
  16.     FILE* pFile = fopen("Date.txt", "r");
  17.     if (pFile)
  18.     {
  19.         //definire lista de studenti
  20.         //1.sizeof(Lista) alocat pe stiva functiei
  21.         //unde este declarata variabila
  22.         //Lista lstStudenti;
  23.  
  24.         //2.1 sizeof(Lista*) alocat pe stiva functiei
  25.         //unde este declarata variabila
  26.         //2.2 sizeof(Lista) alocat in HEAP
  27.         Lista* capatLista = NULL;
  28.  
  29.         char buffer[100];
  30.         int grupa;
  31.         fscanf(pFile, "%s", buffer);
  32.         while (!feof(pFile))
  33.         {
  34.             fscanf(pFile, "%d", &grupa);
  35.             //1.creare element ptr la structura
  36.             Lista* elementNou = creareElement(buffer, grupa);
  37.             //2.inserare element in lista
  38.             //2.1 inserare la inceput
  39.             //capatLista = inserareHead(capatLista, elementNou);
  40.             //2.2 inserare la sfarsit
  41.             inserareTail(&capatLista, elementNou);
  42.             fscanf(pFile, "%s", buffer);
  43.         }
  44.         fclose(pFile);
  45.         Lista* index = capatLista;
  46.         while (index)
  47.         {
  48.             printf("Student: %s, grupa: %d \n",
  49.                 index->numeStudent,
  50.                 index->grupa);
  51.             index = index->pNext;
  52.         }
  53.     }
  54. }
  55.  
  56. void inserareTail(Lista** capat, Lista* nou)
  57. {
  58.     if (*capat == NULL)
  59.     {
  60.         *capat = nou;
  61.     }
  62.     else
  63.     {
  64.         Lista* index = *capat;
  65.         while (index->pNext)
  66.             index = index->pNext;
  67.         index->pNext = nou;
  68.     }
  69. }
  70.  
  71. Lista* inserareHead(Lista* capat, Lista* nou)
  72. {
  73.     nou->pNext = capat;
  74.     return nou;
  75. }
  76.  
  77. Lista* creareElement(char* nume, int grupa)
  78. {
  79.     Lista* elementNou = (Lista*)malloc(sizeof(Lista));
  80.     elementNou->pNext = NULL;
  81.     elementNou->grupa = grupa;
  82.     elementNou->numeStudent = (char*)malloc(strlen(nume) + 1);
  83.     strcpy(elementNou->numeStudent, nume);
  84.     return elementNou;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment