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

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

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

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

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

textual
Листинг программы
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
class Queue
{
  public:
    int dat;
    Queue *next;
    Queue()
    {
    dat=0;
    next=NULL;
    }
};
class stack :public Queue
{
 
  protected:
    Queue *last;
  public:
    int num;
    stack()
    {
      last=NULL;
      num=0;
    }
    int push(int d)
    {
      Queue *s;
      s=new Queue;
      s->dat=d;
      s->next=last;
      last=s;
      num++;
      return d;
      }
       int pop()
    {
      int d;
      Queue *s;
      s=last;
      d=last->dat;
      last=s->next;
      delete s;
      num--;
      return d;
    }
};
 
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 int n,r;
 n=StrToInt(Edit4->Text);
 StringGrid1->ColCount=n;
  StringGrid2->ColCount=n;
   StringGrid3->ColCount=n;
 stack s;
 int res,set;
 for(int i=0;i<StringGrid1->ColCount;i++)
 {for(int j=0;j<StringGrid1->RowCount;j++)
 {
 StringGrid1->Cells[i][j]="";
 StringGrid2->Cells[i][j]="";
 StringGrid3->Cells[i][j]="";
 }
 }
 for(int i=0;i<n;i++)
 {
 res=random(10);
 s.push(res);
 StringGrid1->Cells[i][0]=IntToStr(s.push(res));
 }
 for(int i=0;i<n;i++)
 {set=s.pop();
 if(set%2==0)
 {
 StringGrid2->Cells[i][0]=IntToStr(s.pop());
 }
 else
 {StringGrid3->Cells[i][0]=IntToStr(s.pop());}
 }
 
 }
//---------------------------------------------------------------------------

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


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

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

13   голосов , оценка 4.231 из 5
Похожие ответы