Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 21:00   #1
Kekcuk
 
Регистрация: 13.12.2010
Сообщений: 3
Смущение Связный список векторов

Привет всем.
Разбираюсь со связными списками.. хочу сделать связный список векторов..чтобы можно было добавлять и удалять элементы из списка..
вот что то начал делать, но голова как то плохо соображает
по идее если у нас связный список векторов..
то сначала инициализируем вектор, а потом список.

Код:
struct mv
 {int  *p1;
 int size1;
 } mv1;

struct TNode {
   mv value;
   TNode* pnext;
   TNode(mv val): pnext(0), value(val) {}
};

void input1 (mv &mv1,int k)
 {mv1.size1=k ;
 mv1.p1=new int [mv1.size1];
  for (int i=0 ; i<k; i++)
 {mv1.p1[i]=random(10);}
}

void output1 (mv &mv1, int z)
{
        for (int i=0 ; i<mv1.size1; i++)
Form1->StringGrid1->Cells[i][z]= IntToStr(mv1.p1[i]);
}

void add2list(TNode **pphead, mv val) {
   TNode **pp = pphead, *pnew;
   while(*pp) {
      if(val.p1 < (*pp)->value.p1)
         break;
      else
         pp = &((*pp)->pnext);
   }
   pnew = new TNode(val);
   pnew->pnext = *pp;
   *pp = pnew;
   }

void deleteList(TNode *phead) {
   if(phead) {
      deleteList(phead->pnext);
      if(phead)
         delete phead;
   }
}

void print(TNode *phead) {
   TNode* p = phead;
   int z=0;
   while(p) {
      ///Form1->Memo1->Lines->Add(IntToStr(p->value.p1));
      output1(mv1, z);
	  z++;
	  p = p->pnext;
   }

}

__fastcall TForm1::TForm1(TComponent* Owner)
		: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TNode *phead = 0;
   srand(time(0));
   for(int i = 0; i < 3; ++i)
   {
	  input1(mv1, 2);
	  add2list(&phead, mv1);
	  ///output1(mv1, i);
	  }

print(phead);
deleteList(phead);
}
Kekcuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклический связный список Micar Общие вопросы C/C++ 1 08.06.2010 20:28
Инвертировать связный список levandowskiy Общие вопросы C/C++ 2 21.08.2009 15:20
Как заполнить связный список? levandowskiy Общие вопросы C/C++ 1 18.08.2009 09:00
Ввод векторов и матриц, умножение матрицы на вектор и вычисление скалярного призведения двух векторов zverushka Помощь студентам 18 20.02.2009 15:25