Advertisement
Kofa_Joh

Class_Work_24.03

Mar 24th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <string.h>
  4.  
  5. struct Folder
  6. {
  7.     char Name[256];
  8.     struct Folder* Children;
  9.     int ChildrenCount;
  10. };
  11.  
  12. void addFolder(struct Folder* folder, char* newFolderName)
  13. {
  14.     if (folder->Children == NULL)
  15.     {
  16.         printf("Error: array is not initialized. Folder: %s\n",
  17.             folder->Name);
  18.         return;
  19.     }
  20.     struct Folder* newChild =
  21.         &folder->Children[folder->ChildrenCount];
  22.     strcpy(newChild->Name, newFolderName);
  23.     newChild->Children = NULL;
  24.     newChild->ChildrenCount = 0;
  25.     folder->ChildrenCount++;
  26. }
  27.  
  28. int main()
  29. {
  30.     setlocale(LC_ALL, "rus");
  31.  
  32.     struct Folder diskCFolders[20];
  33.     struct Folder amdFolders[20];
  34.     struct Folder apacheFolders[20];
  35.  
  36.     struct Folder diskC;
  37.     strcpy(diskC.Name, "C:");
  38.     diskC.ChildrenCount = 0;
  39.     diskC.Children = diskCFolders;
  40.  
  41.     addFolder(&diskC, "AMD");
  42.  
  43.     struct Folder* amd = &diskC.Children[0];
  44.     amd->Children = amdFolders;
  45.     amd->ChildrenCount = 0;
  46.     addFolder(amd, "SDFF");
  47.     addFolder(amd, "dsf");
  48.     addFolder(amd, "234234");
  49.  
  50.     addFolder(&diskC, "Apache24");
  51.     diskC.Children[1].Children = apacheFolders;
  52.     addFolder(&diskC.Children[1], "12345");
  53.     addFolder(&diskC.Children[1], "123");
  54.     addFolder(&diskC.Children[1], "dfgfg");
  55.     addFolder(&diskC.Children[1], "t4545t");
  56.     addFolder(&diskC, "inetpub");
  57.  
  58.     printf("%s\n", diskC.Name);
  59.     for (int i = 0; i < diskC.ChildrenCount; i++)
  60.     {
  61.         struct Folder* child = &diskC.Children[i];
  62.         printf("\t%s\n", child->Name);
  63.         for (int j = 0; j < child->ChildrenCount; j++)
  64.         {
  65.             if (child->Children != NULL)
  66.             {
  67.                 printf("\t\t%s\n", child->Children[j].Name);
  68.             }
  69.         }
  70.     }
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement