}
nw=p[position]; // виділення пам'яті під новий елемент
if(!nw)
{ p[position]=pt;
p[position]->next=NULL;
p[position]->curr=pt;
}
else
{ pt->next=p[position]->curr;
p[position]->curr->prev=pt;
p[position]->curr=pt;
}
strcpy(p[position]->curr->name,str); //занесення прізвища в елемент
return 0;
}
void Insert()
{ Stud *pt;
char *ss;
int pos;
setmem(ss,1,'\0');
scanf("%s",ss); // прізвище, що вставляється в список
pos=Kesh(ss); // обчислення хэш-функции для даного прізвища
Build(pos,ss); // вставка прізвища в список
cout<<"\nString inserted in "<<pos<<" position\n";
delay(1000);
}
void Del()
{ int pos;
char *s;
Stud *pt,*pt1=NULL,*pt2=NULL;
scanf("%s",s);
pos=Kesh(s);
pt=p[pos]->curr;
pt1=pt;
while((strcmp(pt->name,s))&&(pt))
pt=pt->next; // видалення першого
if((pt1= =pt)&&(pt))
{ pt1=pt->next;
delete pt;
p[pos]->curr=pt1;
p[pos]->curr->prev=NULL;
} //елемент не знайдений
if(!pt)
{ cout<<"This string is absent\n";
getch();
return;
} // останній елемент
if(!pt->next)
{ Stud *temp;
Stud *temp1 = p[pos]->curr;
temp = p[pos];
p[pos] = temp->prev;
delete temp;
p[pos]->next = 0;
p[pos]->curr = temp1;
} // елемент у середині
else
{ pt1=pt->prev;
pt2=pt->next;
pt1->next=pt2;
delete pt;
}
}
void Show()
{ Stud *ptr;
int len,o;
for(int i=0;i<RAZM;i++)
{ ptr=p[i];
cout<<"Segment "<<i<<" ";
if(ptr)
{ ptr=p[i]->curr;
while(ptr)
{ cout<<" "<<ptr->name<<" ";
ptr=ptr->next;
}
}
cout<<"\n";
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.