вставить после каждого нечетного элемента, элемент, равный первому с конца четному элементу...
Вот Код:
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;
}
}