Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
dane.yeah
15 / 15 / 7
Регистрация: 08.04.2012
Сообщений: 133
#1

Работа со списками - C (СИ)

15.04.2013, 00:15. Просмотров 434. Ответов 0
Метки нет (Все метки)

Что-то карета не вывезла и превратилась в тыкву.
  1. не могу понять почему данные не записывают в SP2
  2. не понимаю почему в SP1 только последний элемент

Задача:
Кликните здесь для просмотра всего текста
Взять исходный список L и создать два новых списка L1 и L2. L1 содержит нечетные узлы, а L2 – четные.


Наработки:
Кликните здесь для просмотра всего текста

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
typedef struct SP {
    int val;
    SP *next;
};
 
typedef struct SP1 {
    int val;
    SP1 *next;
};
typedef struct SP2 {
    int val;
    SP2 *next;
};
 
int main() {
    
    SP *first=NULL,*end=NULL, *list, *tmp;
    SP1 *first_SP1=NULL,*end_SP1=NULL,*chlist,;
    SP2 *first_SP2=NULL,*end_SP2=NULL,*nchlist;
    
    int n,i;
    
    printf("enter N:");
    scanf("%d",&n);
    
    system("cls");
    
    list=(SP*)malloc(sizeof(SP));
    
    printf("val [1]: ");
    scanf("%d",&list->val);
    first=list;
    list->next = end;
     
    if(list->val % 2 == 0) {
        chlist=(SP1*)malloc(sizeof(SP1));
        chlist->val = list->val;
        first_SP1 = chlist;
        chlist->next = end_SP1;   
    }     
    else { 
        nchlist=(SP2*)malloc(sizeof(SP2));
        nchlist->val = list->val;
        first_SP2 = nchlist;
        nchlist->next = end_SP2;  
    } 
    
    
    for (i = 1;i<n;i++) {
        list->next=(SP*)malloc(sizeof(SP));
        
        list=list->next;        
        
        printf("val [%d]: ",i+1);
        scanf("%d",&list->val);
        
        if(list->val % 2 == 0) {
            chlist->next=(SP1*)malloc(sizeof(SP1));
            chlist = chlist->next;
            chlist->val = list->val;
            first_SP1 = chlist;
            chlist->next = end_SP1;   
        }     
        else { 
            nchlist->next=(SP2*)malloc(sizeof(SP2));
            nchlist = nchlist->next;
            nchlist->val = list->val;
            first_SP2 = nchlist;
            nchlist->next = end_SP2;  
        } 
        list->next=end;
    }
        
    system("cls");
    printf("Ñïèñîê:\n");
    list = first;
    i=1;
    while(list!=NULL) {
        printf("val[%d] = %d\n",i,list->val);
        list=list->next;
        i++;
    }
    
    printf("\nÑïèñîê Г·ВёГІГ*ûõ:\n");
    chlist = first_SP1;
    i=1;
    while(chlist!=NULL){
        printf("val[%d] = %d\n",i,chlist->val);
        chlist=chlist->next;
        i++;
    }
    
    printf("\nÑïèñîê Г*ГҐГ·ВёГІГ*ûõ:\n");
    nchlist = first_SP2;
    i=1;
    while(chlist!=NULL){
        printf("val[%d] = %d\n",i,nchlist->val);
        nchlist=nchlist->next;
        i++;
    }
    
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 00:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа со списками (C (СИ)):

Работа с списками в Си
Всем привет. Есть такая задача. С клавиатуры читается выражение в польской...

Работа со списками
Всем привет, прошу помочь мне. Вот такая задача. Работа со списком. Мне нужно...

Работа со списками автомобилей
Помогите исправить ошибку,пожалуйста) #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Работа со связными списками
Запросить у пользователя число n. Построить связный список из n элементов,...

Работа со списками, адресами - исправить ошибку
Задание: работа со списками... подскажите ошибку в данной функции. int...

Нужен пример работы со списками
Здравствуйте! Мне в течении недели нужно сдать курсовик! Народ помогите...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 00:15
Привет! Вот еще темы с решениями:

Организовать работу с вложенными списками
Добрый день , нужна помощь. Не могу понять как организовать и работать со...

работа со списками
задание такое: Cформировать список, состоящий из элементов, которые...

Работа со списками
Создать одномерный массив (список) -Создать пустой список, затем добавить в...

Работа со списками
Здравствуйте! Имеется такая задача: Написать функцию complexMap :: → → → ...


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

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

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