if(tmp->next->num==_num)//если
элемент найден, то удаляем его
{
node*
tmp1=tmp->next;
tmp->next=tmp->next->next;
if(!vz) delete
tmp1;
else
{
delete
((vznode*)tmp1)->data;
delete
tmp1;
}
return
true;
}
else
tmp=tmp->next;
}
}
return
false;
}
bool
Exist(int _num)//проверка существования элемента
{
node*
tmp=ph;
while(tmp!=NULL)//проверяем
все узлы списка
if(tmp->num==_num)//пока
не найден искомый
return
true;
else
tmp=tmp->next;
return
false;
}
void
SetData(int _num,T1 _data)//установака параметров ребра
{
if(!vz)//задать
вес можно только узлу взвешаной структуры
throw
"not weighed";
node*
tmp=ph;
while(tmp!=NULL)//ищем
нужный эллемент
if(tmp->num==_num){//и
если нашли, то задаем его параметры
((vznode*)tmp)->data=new
T1(_data);
return;
}
else
tmp=tmp->next;
}
//получение
параметров некоторого узла
T1*
getData(int _num)
{
if(!vz)//получить
вес можно только из узла взвешаной структуры
throw
"not weighed";
node*
tmp=ph;
while(tmp!=NULL)//ищем
нужный эллемнет и берём его данные
if(tmp->num==_num)
return
((vznode*)tmp)->data;
else
tmp=tmp->next;
throw
"not exist elem with this number";
};
};
list** array; //массив
указателей на списки смежности
int sz; //колличество
элементов
int number; //колличество
рёбер
bool or,vz; //свойства
графа
public:
listGraph(int
size,bool _or,bool _vz)//конструктор-входные параметры размер и свойства
{
vz=_vz;
or=_or;
sz=size;
number=0;
array=new
list*[sz];
for(int
i=0;i<sz;i++)
array[i]=new
list(vz);
};
~listGraph() //деструктор
{
for(int
i=0;i<sz;i++) delete [] array[i];
delete []
array;
}
int V(){return
sz;};//- опрос числа вершин в графе,
int E(){return
number;};//- опрос числа ребер в графе,
bool
Directed(){return or;};// опрос типа графа (ориентированный /
неориентированный)
bool
Weighed(){return vz;}
int
Dense(){return 1;};//опрос формы представления графа (L- граф / M- граф),
GraphATD<T1>*
ToListGraph()
{
return (GraphATD<T1>*)this;
};
GraphATD<T1>*
ToMatrixGraph()
{
GraphATD<T1>*
rez=(GraphATD<T1>*)new matrixGraph<T1>(sz,or,vz);//создаём обьект
М-графа
node* tmp;
for(int
i=0;i<sz;i++)//копируем все элемнты из текущего объекта в новый
{
tmp=array[i]->ph;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.