Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Двусвязный список
вставить после каждого нечетного элемента, элемент, равный первому с конца четному элементу...
Вот Код:

void peek2(LIST *current)
{
int res1;
LIST *current_new;
current_new = new LIST;
LIST *tmp = current;
LIST *tmp1 = current;
LIST *tmp2 = current;

while((tmp->next)!=NULL)
{
tmp = tmp->next;
}

while((tmp->prev) || ((tmp->info) %2 != 0))
{
tmp = tmp->prev;
}
res1=tmp->info;
add(&(current_new), res1);

while((tmp1->next) || ((tmp1->info) % 2 == 0))
{
tmp1 = tmp1->next;
}

current_new->next=tmp1->next;
tmp1->next->prev=current_new;
current_new->prev=tmp1;
tmp1->next=current_new;

while(tmp2->next)
{
printf("%d", tmp2->info);
tmp2 =  tmp2->next;
}

}

Добавлено (30.05.13, 22:34)
---------------------------------------------
Вот функция добавления add:

void add(LIST **current, char item)
{
LIST *new_node;
new_node = new LIST;
new_node->info = item;

if (*current == NULL)
 {
  *current=new_node;
  new_node->next=NULL;
  new_node->prev=NULL;
 }

else
 {
  new_node->next=*current;
  (new_node->next)->prev=new_node;
   new_node->prev=NULL;
  *current=new_node;
 }

}

1 | Автор: Vinser777 | 2013-05-30, 22:34 | Изменено: Vinser777 - Чт, 2013-05-30, 22:19   |  Репутация: [ + 0 ]
  • Страница 1 из 1
  • 1
Поиск: