PDA

View Full Version : ذخیره گراف در لیست پیوندی و نیاز به چندین لیست به تعداد راس ها



m_h_2007
چهارشنبه 09 بهمن 1392, 08:42 صبح
با سلام . من می خواهم یک گراف بدون جهت را که یال ها وزن دار هستند را در یک لیست پیوندی ذخیره کنم. برای این منظور به تعداد راس های گراف لیست پیوندی لازم دارم. مثلا اگر 4 تا راس موجود باشد 4 تا لیست پیوندی و اگر راس ها 7 تا باشد 7 تا لیست پیوندی باید ایجاد شود. این کار چگونه انجام می شود. یعنی اینکه چگونه می توان یک تعداد لیست پیوندی به صورت پویا داشته باشیم. ضمنا به آرایه ای داریم که به تعداد راس ها عنصر دارد و هر عنصر به یکی از همون لیست های پیوندی که ذکر شدم اشاره دارد.

Behnam.B
چهارشنبه 09 بهمن 1392, 16:32 عصر
سلام. من این روش به ذهنم رسید که قالب کلی رو به این شکل نوشتم: (البته هنوز توابع دیگه ای هم لازم داره)
#include <iostream>
#include <time.h>

using namespace std;

class LinkedList{
private:
class Node{
int un_sare_yal;
int vazn;
Node* mPrev;
Node* mNext;
};
public:
void add(int un_sare_yal, int vazn){
//...
}

private:
Node* HeaderNode;
int size;
};

int main(){
LinkedList** ras_ha;
int tedade_ras_ha;
cin >> tedade_ras_ha;
ras_ha = new LinkedList*[tedade_ras_ha];

for (int i = 0; i < tedade_ras_ha; i++)
ras_ha[i] = new LinkedList;


//masalan yal ba vazne 5 beyne ra'se 0 va 2 age bashe, ina ro vasash benevisim:
ras_ha[0]->add(2, 5);
ras_ha[2]->add(0, 5);

//...

for (int i = 0; i < tedade_ras_ha; i++)
delete ras_ha[i];
delete[] ras_ha;
return 0;
}
و از درستیش مطمئن نیستم، بقیه دوستان هم اگه لطف کنن و نظر بدن که خوب میشه.