Работа со списками, адресами - исправить ошибку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задание: работа со списками... подскажите ошибку в данной функции.
int Look(struct spisok *start, int index)
{ int i;struct spisok *tmp; tmp=start;
for(i=1;i<=index;i++)
tmp=tmp->next;
return (tmp->info); }

Решение задачи: «Работа со списками, адресами - исправить ошибку»

textual
Листинг программы
struct spisok
{int info;
struct spisok *next;};
 
void Append(struct spisok *start, int x)
{struct spisok *tmp,*tmp1;
tmp=start;
while(tmp->next!=NULL)
tmp=tmp->next;
tmp1=(struct spisok *)malloc(sizeof(struct spisok));
tmp1->info=x;
tmp1->next=NULL;
tmp->next=tmp1;start->info++;}
 
struct spisok *Create(void)
{struct spisok *tmp;
tmp=(struct spisok*)malloc(sizeof(struct spisok));
tmp->info=0;tmp->next=NULL;return tmp;}
 
int Pusto (struct spisok *start)
{if(start->info)return 0; else return 1;}
 
 
void Print(struct spisok *start)
{struct spisok *tmp;int i;
if (Pusto(start))puts("список пустой");
else{tmp=start;for(i=1;i<=start->info;i++)
{tmp=tmp->next;printf("%d->%p ",tmp->info,tmp->next);}
puts("");}
}
 
struct spisok *Poluchit_adres(struct spisok *start, int nomer)
{int i; struct spisok *tmp; tmp=start;
for(i=1;i<=nomer;i++)
tmp=tmp->next;
return tmp;}
 
 
void Exchange (struct spisok *start, int nomer1, int nomer2)
{struct spisok *tmp,*tmp1,*tmp2,*posle1,*posle2,*pered1,*pered2; int i;
if(nomer1>nomer2)
{i=nomer1;nomer1=nomer2;nomer2=i;}
if((nomer2-nomer1)==1)
{pered1=Poluchit_adres(start,nomer1-1);
tmp1=pered1->next;
tmp2=tmp1->next;
posle2=tmp2->next;
pered1->next=tmp2;
tmp2->next=tmp1;
tmp1->next=posle2;}
else
{pered1=Poluchit_adres(start,nomer1-1);
tmp1=pered1->next;
posle1=tmp1->next;
pered2=Poluchit_adres(start,nomer2-1);
tmp2=pered2->next;
posle2=tmp2->next;
pered1->next=tmp2;
tmp2->next=posle1;
pered2->next=tmp1;
tmp1->next=posle2;}
}
 
int Size(struct spisok *start)
{return start->info;}
 
int Look(struct spisok *start, int index)
{ int i;struct spisok *tmp; tmp=start;
for(i=1;i<=index;i++)
tmp=tmp->next;
return (tmp->info); }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы