Код: Выделить всё
int Sort::fcel (char*a)
{
int b=0;
for (int i=0; i<strlen(a); i++)
if (a[i]=='1'|| a[i]=='2'|| a[i]=='3'|| a[i]=='4'|| a[i]=='5'|| a[i]=='6'|| a[i]=='7'|| a[i]=='8'|| a[i]=='9'|| a[i]=='0')
b++;
return b;
};
void Sort::Add (char*arg)
{
cout<<"ADD Sort"<<endl;
el*l, *cur1;
asocel* cur;
l=new el;
l->info=new char[strlen(arg)];
strcpy(l->info,arg);
l->next = NULL;
count++;
if (Head==NULL)
{
asocel*as;
as=new asocel;
as->info=arg[0];
as->down=NULL;
as->next=l;
Head=as;
}
else
{
cur=Head;
while (cur->info!=arg[0]&&cur->down)
cur=cur->down;
if (cur->info==arg[0])
{
cur1=cur->next;
int a=fcel(cur1->info);
int b=fcel(l->info);
while (cur1->next!=NULL&&(fcel(cur1->next->info)<fcel(l->info)))
cur1=cur1->next;
if (cur1->next==NULL)
cur1->next=l;
else
{
l->next=cur1->next;
cur1->next=l;
}
}
else
{
asocel*as;
as=new asocel;
as->info=arg[0];
as->down=NULL;
as->next=l;
cur->down=as;
}
}
};