Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ensaid
3 / 3 / 0
Регистрация: 06.11.2012
Сообщений: 62
#1

Создание списка и разделение его на четный и нечетный - C++

29.04.2013, 12:37. Просмотров 357. Ответов 0
Метки нет (Все метки)

Суть программы следующая:
Мы вводим число элементов (n) и вводим (n-ное ) количество элементов, эти элементы должны разделиться на четные и нечетные, в два списка, но почему-то они у меня записываются подряд, просто тупо подряд, может кто помочь с ошибкой?
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include "stdafx.h"
#include <iostream>
using namespace std;
struct List
{
    int info;
    List *next;
};
 
struct stack {
    List *head;
};
 
 
void AddList(List*& head, int key, int pos) 
{
List* current,*help;
// добавление в начало списка 
if (pos==1)
{
help=new List;
help->info=key;
help->next=head;
head=help;
return;
}
// поиск элемента, после которого требуется 
// вставить новый элемент
current=head;
int i=1;
while(i!=pos-1 && current!=NULL)
{
i++;
current=current->next;}
 
// позиция не найдена, список оказался коротким
if (current==NULL)
{
cout<<"Некорректная позиция\n"; return;
}
 
// вставка элемента в позицию pos
help=new List; 
help->info=key;
help->next=current->next;
current->next=help; 
}
 
// определение функции разбиения списка на два -
//в одном четные элементы, в другом - нечетные 
 
void Decompose(List* head, List*& head1, List*& head2) 
{
List* current1=NULL,*current2=NULL; head1=NULL; head2=NULL;
// просмотр элементов исходного списка
while(head!=NULL)
{
// если значение текущего элемента четное 
    if (head->info%2==0)
{
// добавляем элемент в список 
    // с четными значениями элементов
    if (head2==NULL) 
// формируем заголовок списка
    head2=current2=head;
else
{
// список не пуст,
// добавляем в конец новый элемент 
    current2->next=head; current2=current2->next;
}
    }
    else
{
// добавляем элемент в список
// с нечетными значениями элементов
 
if (head1==NULL)
// список еще пуст
// формируем заголовок списка
head1=current1=head;
else
{
// список не пуст,
// добавляем в конец новый элемент 
    current1->next=head; 
current1=current1->next;
}
    }
 
// переходим на следующий элемент
 // в исходном списке 
head=head->next;
    
}
 
// установка признаков конца построенных списков
 
 if (current1!=NULL)
current1->next=NULL;
 if (current2!=NULL)
current2->next=NULL;
}
 
 
void Print (List* head)
{List *c=head;
    
    while(c!=NULL)
{cout<<c->info<<' ';
c=c->next;
}
cout<<endl;
 
}
 
int _tmain(int argc, _TCHAR* argv[])
 
{
List *head=NULL;
int i,k,n;
cout<<"vvedite n=";
cin>> n;
for (i=1;i<=n;i++)
{cout<<"\n vvedite k=";
cin>> k;
AddList(head,k,i);
}
Print(head);
system("PAUSE");
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2013, 12:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание списка и разделение его на четный и нечетный (C++):

Поменять столбцы матрицы местами (четный и нечетный) - C++
нужно сделать программу, которая будет менять столбцы местами(четный и нечетный), если у них будут отсутствовать элементы со значением...

Массивы. Как определить, индекс четный или нечетный? - C++
Такой вопрос, как определить индекс четный или нечетный??? Вычислить и вывести сумму элементов массива V (11), которые имеют четные...

Поменять местами элементы массива которые имеют четный и нечетный индексы - C++
Здравствуйте,нужно поменять местами элементы массива которые имеют четный и нечетный индексы,но при условии того что они оба четные,если...

Дан массив А[0:n-1].Поменять местами его минимальный чётный и максимальный нечетный элементы - C++
помогите пожалуйста

Получить указатель на элемент двунаправленного списка, добавить значение в начало списка и очистить его - C++
Нужно создать двунаправленный список //вроде так, но не уверен struct Double_List {//структура данных int Data;...

Формирование и просмотр списка и функция, которая изменяет каждое значение информационной части элемента списка на его квадрат - C++
Написать программу, содержащую процедуры формирования и просмотра списка и функцию, которая изменяет каждое значение информационной части...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2013, 12:37
Привет! Вот еще темы с ответами:

"Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка - C++
Здравствуйте! Возникла проблема с программой. Тема: &quot;Сортировка двусвязного списка путем исключения элемента с минимальным значением и...

Используя производные классы, определить класс параметризованного списка одного из следующих типов. Применить его для построения списка объектов указа - C++
Используя производные классы, определить класс параметризованного упорядоченного списка. Применить его для построения упорядоченного...

Каждый нечетный элемент списка умножить на 2, каждый четный на 3 - Lisp
сначало пытаюсь написать хотя бы проверку на четность и умножение на 3. (defun четность (l) (cond((null l)nil) (t(if(= (mod...

каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию CAR,CDR,COND,CONS - Lisp
каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию CAR,CDR,COND,CONS


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru