Скачиваний:
20
Добавлен:
01.05.2014
Размер:
45.57 Кб
Скачать

10) Переместить меньшие сред.арифм. числа в начало.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1;

int sum,kol;

float m_ar;

if(F==NULL) return;

if(F->next==NULL) return;

for(T=F;T!=NULL;T=T->next)

{

sum+=T->inf;

kol++;

}

m_ar=sum/kol;

T=F;

while(T->next!=NULL)

{

T1=T->next;

if(T1->inf<m_ar) /*MEHbIIIUE*/

{

T->next=T1->next;

T1->next=F;

F=T1;

}

else

T=T->next;

}

return;

}

11) Все ‘-’ числа переместить в начало.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1;

if(F==NULL) return;

if(F->next==NULL) return;

T=F;

while(T->next!=NULL)

{

T1=T->next;

if(T1->inf<0)

{

T->next=T1->next;

T1->next=F;

F=T1;

}

else

T=T->next;

}

return;

}

12) Все + числа переместить в конец.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1,*posl,*posl1;

int min;

if(F==NULL) return;

if(F->next==NULL) return;

min=F->inf;

for(T=F->next;T!=NULL;T=T->next)

{

if(T->inf<min) min=T->inf;

if(T->next==NULL) posl=T;

}

posl1=posl;

while(F!=posl)

{

if(F->inf>0)

{

T=F;

F=F->next;

posl1->next=T;

posl1=T;

T->next=NULL;

}

else break;

}

if(F!=posl)

{

T=F;

while(T->next!=posl)

{

T1=T->next;

if(T1->inf>0)

{

T->next=T1->next;

posl1->next=T1;

posl1=T1;

T1->next=NULL;

}

else

T=T->next;

}

}

return;

}

13) Все четные и + числа переместить в начало.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1;

if(F==NULL) return;

if(F->next==NULL) return;

T=F;

while(T->next!=NULL)

{

T1=T->next;

if(T1->inf>0&&T1->inf%2==0)

{

T->next=T1->next;

T1->next=F;

F=T1;

}

else

T=T->next;

}

return;

}

14) Удалить элемент который больше первого.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*U;

if(F==NULL) return;

if(F->next==NULL) return;

T=F;

while(T->next!=NULL)

{

U=T->next;

if(U->inf>F->inf)

T->next=U->next;

else T=U;

}

return;

}

15) Каждый 4 элемент удалить.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1,*U;

if(F==NULL) return;

T=F->next;

while(T1->next!=NULL)

{

T1=T->next->next;

U=T1->next;

T->next->next=T1->next;

T=U->next;

}

return;

}

16) Удаляет элемент который после MIN.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1,*U;

if(F==NULL) return;

if(F->next==NULL) return;

min=F->inf;

for(T=F->next;T!=NULL;T=T->next)

if(T->inf<min) min=T->inf;

if(F->inf==min)

{

T=F->next;

F->next=T->next;

}

else

for(T=F;T->next!=NULL;T=T->next)

{

U=T->next;

if(U->inf==min)

{

T=U->next;

U->next=T->next;

break;

}

}

return;

}

17) Поменять местами соседние элементы.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1;

int tmp;

if(F==NULL) return;

if(F->next==NULL) return;

T=F;

while(T!=NULL)

{

T1=T->next;

if(T1==NULL)break;

tmp=T->inf;

T->inf=T1->inf;

T1->inf=tmp;

T=T1->next;

}

return;

}

18) Удалить элемент стоящий перед MAX.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1;

int tmp;

if(F==NULL) return;

if(F->next==NULL) return;

max=F->inf;

for(T=F->next;T!=NULL;T=T->next)

if(T->inf>max) max=T->inf;

if(F->inf==max) return; - (вроде не надо)

T=F->next;

if(T->inf==max)

{

T=F;

F=F->next;

}

T=F;

T1=F->next;

while(T1->next!=NULL)

{

U=T1->next;

if(U->inf==max)

T->next=T1->next;

else

{

T=T1;

T1=U;

}

}

return;

}

19) Удаляет К –ый элемент списка.

struct sp { int inf;

struct sp *next;

} *F;

void func(void)

{ struct sp *T,*T1;

int kol,k;

if(F==NULL) return;

printf("\n KAKOU 3LEMEHT YDALUTb ");

scanf("%d",&k);

if(k<0) return;

for(T=F;T!=NULL;T=T->next)

kol++;

if(k>kol)

{

printf("\n ERROR HET TAKOGO 3LEMEHTA !!");

return;

}

if(F->next==NULL&&k==1)

{

printf("\n spisok pust");

return;

}

if(F->next!=NULL&&k==1)

{

T=F;

F=F->next;

}

if(k==2)

{

T=F->next;

F->next=T->next;

}

T=F;

T1=T->next;

kol=2;

while(kol!=k)

{

T=T->next;

T1=T1->next;

kol++;

if(kol==k)

T->next=T1->next;

}

return;

}

Соседние файлы в папке Кориткие программы по работе со строками на C++