Реферат: Разработка алгоритмов и программ выполнения операций над последовательными и связанными представлениями структур данных
{int i=0;
Spisok *rex;
for(i=0;i<n-1;i++){
rex=Z[i];
while(rex!=NULL){Z[i]=rex->next;delete rex;rex=Z[i];}
delete Z[i];
}
delete [] Z;
}
////////////////////////////////////////////////////////////////////////////////
Spisok** RaznostY(int n,int n1,Array *X, Spisok **Y)
{/*Расчет разности графов Z=X-Y
Z,Y - связанном представлении, X - в последовательном.
n - кол-во вершин графа, n1 - кол-во дуг графа*/
int i,j;
Spisok **Z = new Spisok *[n];//выделение памяти для графа в связанном представлении
for (i=0;i<n;i++) {Z[i] = new Spisok;Z[i]= NULL;}//выделение памяти для графа в связанном представлении
//cout<<' ';
for(i=0;i<n1;i++){//cout<<"\b\/"; //цикл для графа в пследовательном пред.
for(j=0;j<n;j++) //цикл для графа в связанном пред.
if(X[i].I==j){//cout<<"\bД"; //если совпали выходищие вершины...
Spisok *max=Y[j]; //max глядит на начало списка Y[j]
int Flag=0; //Просто флаговая переменная
while(max!=NULL){ //Проверяем на совпадения "входящие" вершины
if(X[i].J==max->index)Flag=1;//если нашли повторение, то выход
max=max->next; //передвигаемся на следующий элемент списка
}
if(Flag==0){ //если небыло совпадений вершин, то... всё понятно:
Spisok *end=Z[j], *beg=Z[j], *pred=Z[j];