Как реализовать создание динамического массива, элементы (узлы) которого являются структурами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу понять как реализовать создание динамического массива, элементы(узлы) которого являются структурами. У меня даны следующие структуры:
Листинг программы
  1. // Объявляем шаблон структуры с полями для каждого узла
  2. struct array_element {
  3. int element;
  4. struct array_element * next;
  5. struct array_element * prev;
  6. };
  7. // Объявляем шаблон структуры с полями для самого массива
  8. struct intarray {
  9. struct array_element * first;
  10. struct array_element * last;
  11. int lowbound;
  12. int highbound;
  13. int buffer;
  14. };
  15. typedef struct intarray *intarray;
Не понимаю зачем мне создавать массив(а это требуется в задании), если мне задана структура intarray,узлы которой являются тоже структурами. Или структура - это тоже массив, только с разными типами?! В общем не знаю как создать динамический массив используя описанные структуры Я начал так:
Листинг программы
  1. intarray fun_number_one_array;
  2. fun_number_one_array = malloc(sizeof(struct intarray));
Заранее спасибо Всем, кто хоть чем то поможет)

Решение задачи: «Как реализовать создание динамического массива, элементы (узлы) которого являются структурами»

textual
Листинг программы
  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;
  11. class Queue
  12. {
  13.   public:
  14.     int dat;
  15.     Queue *next;
  16.     Queue()
  17.     {
  18.     dat=0;
  19.     next=NULL;
  20.     }
  21. };
  22. class stack :public Queue
  23. {
  24.  
  25.   protected:
  26.     Queue *last;
  27.   public:
  28.     int num;
  29.     stack()
  30.     {
  31.       last=NULL;
  32.       num=0;
  33.     }
  34.     int push(int d)
  35.     {
  36.       Queue *s;
  37.       s=new Queue;
  38.       s->dat=d;
  39.       s->next=last;
  40.       last=s;
  41.       num++;
  42.       return d;
  43.       }
  44.        int pop()
  45.     {
  46.       int d;
  47.       Queue *s;
  48.       s=last;
  49.       d=last->dat;
  50.       last=s->next;
  51.       delete s;
  52.       num--;
  53.       return d;
  54.     }
  55. };
  56.  
  57.  
  58. //---------------------------------------------------------------------------
  59. __fastcall TForm1::TForm1(TComponent* Owner)
  60.         : TForm(Owner)
  61. {
  62. }
  63. //---------------------------------------------------------------------------
  64. //---------------------------------------------------------------------------
  65.  
  66. void __fastcall TForm1::Button2Click(TObject *Sender)
  67. {
  68. Close();
  69. }
  70. //---------------------------------------------------------------------------
  71. void __fastcall TForm1::Button1Click(TObject *Sender)
  72. {
  73.  int n,r;
  74.  n=StrToInt(Edit4->Text);
  75.  StringGrid1->ColCount=n;
  76.   StringGrid2->ColCount=n;
  77.    StringGrid3->ColCount=n;
  78.  stack s;
  79.  int res,set;
  80.  for(int i=0;i<StringGrid1->ColCount;i++)
  81.  {for(int j=0;j<StringGrid1->RowCount;j++)
  82.  {
  83.  StringGrid1->Cells[i][j]="";
  84.  StringGrid2->Cells[i][j]="";
  85.  StringGrid3->Cells[i][j]="";
  86.  }
  87.  }
  88.  for(int i=0;i<n;i++)
  89.  {
  90.  res=random(10);
  91.  s.push(res);
  92.  StringGrid1->Cells[i][0]=IntToStr(s.push(res));
  93.  }
  94.  for(int i=0;i<n;i++)
  95.  {set=s.pop();
  96.  if(set%2==0)
  97.  {
  98.  StringGrid2->Cells[i][0]=IntToStr(s.pop());
  99.  }
  100.  else
  101.  {StringGrid3->Cells[i][0]=IntToStr(s.pop());}
  102.  }
  103.  
  104.  }
  105. //---------------------------------------------------------------------------

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы