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

Построение списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Cоздать и вычислить матрицу. http://www.cyberforum.ru/cpp-beginners/thread55797.html
помогите программный код написать плиззз задание: дана матрица S вычислить сумму главной диагонали матрицу вводить с клавиатуры плизз очень нужна
C++ Задача Парсона Доброго времени суток. Прошу пожалуйста написать программу на С++. Задача Парсона (1982 РЖМат 11В682) Пусть G - конечный неориентированный связный граф. Предположим, что он представляет собой... http://www.cyberforum.ru/cpp-beginners/thread55784.html
Массив содержащий пойнтеры к субклассам* C++
Привет. У меня есть базовый класс, субкласс и от субкласса ещё субкласс... Выглядит это примерно так: class _OtherClass { public: _OtherClass(int num = 123): _p(num) { } int _p;
Создание проекта c++ C++
вот написал полностью рабочую программу. Но её нужно оформить как проект, т.е состоящей из нескольких файлов (например что бы библиотека функций была отдельно, а главный cpp служил только для сбора...
C++ что за ошибка? http://www.cyberforum.ru/cpp-beginners/thread55751.html
вот програма #include "stdafx.h" #include <iostream> using std::cout; using std::endl; class GradeBook { public: void print() { cout << "Hello"<<endl;
C++ Нахождение суммы ряда... оО Доброго времени суток! Ребят, помогите пожалуйста решить задачу... Возможно, я бы сам смог её решить, но проблема в том, что я не знаю самого принципа решения задачи даже НЕ способом программирования... подробнее

Показать сообщение отдельно
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
11.10.2009, 21:24
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
133
134
135
136
137
138
139
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* First node of the list is not used to store actual values*/
/* Last node has "next" pointer equal to zero */
typedef struct _node { 
    int value;
    struct _node * next;
}Node,List;
/*Sets the end of list to it's start*/
void CreateList(List * list) {
    list->next=NULL;
};
void AddNode(List * list,int value) {
    Node * node;
    //if the end of list is found
    if(list->next==NULL) { 
        //insert to the end
        list->next = (Node*) malloc(sizeof( List));
        list->next->value=value;
        list->next->next=NULL;
        return;     
    };//end of looking up
 
    //if the right place is found
    if(list->next->value >= value)  {
        //insert there
        node = (Node*)malloc(sizeof( List));
        node->value = value;
        node->next = list->next;
        list->next = node;  
    } else //keep searching - call the same for next node.
        AddNode(list->next,value);
};
int DelNode(List * list,int value) { 
    Node * tmp;
    //if this is the end - quit.notging deleted.
    if(list->next==NULL) return 0;
    if(list->next->value==value) { 
        //deleted something.return true.
        tmp = list->next->next;
        free(list->next);
        list->next = tmp;
        return 1;//else keep searching
    } else return DelNode(list->next,value);
};
void PrintList(List * list) { //thats just simple.
    Node * tmp;
    if(list->next == NULL)  {
        printf("List is empty");
        return;
    }
    tmp = list->next;
    while(tmp !=NULL) { 
        printf("%d ",tmp->value);
        tmp=tmp->next;
    };
};
int CntList(List * list) { //even more simple
    int i = 0 ;
    Node * tmp = list;
    while(tmp->next != NULL) { 
        i++;
        tmp=tmp->next;
    };
    return i;
};
int OccList(List * list,int value ) { 
    if(list->next == NULL) return 0;
    if(list->next->value == value)
        return 1+OccList(list->next,value);
    if(list->next->value >value ) 
        return 0;
    return OccList(list->next,value);
};
int CdvList(List * list) { 
    if(list->next == NULL)
        return 0;
    if(list->next->next ==NULL) 
        return 1;
    if(list->next->value == list->next->next->value)
        return CdvList(list->next);
    else 
        return 1+CdvList(list->next);
};
int RanList(List * list,int value1, int value2) { 
    if(value1 >value2){
        printf("Invalid range\n");
            return -1;
    }
    if(list->next==NULL)
        return 0;
    if(list->next->value > value2 ) 
        return 0;
    if(list->next->value < value1 ) 
        return RanList(list->next,value1,value2);
    return RanList(list->next,value1,value2)+1;
};
int main () { 
    char command[4];
    int param1,param2,tmp;
    List list;
    CreateList(&list);
    while(1) { 
        printf("Enter command : ");
        scanf("%s",command);
        if(!strcmp(command,"pri") ) { 
            PrintList(&list);
            printf("\n");
        };
        if(!strcmp(command,"ins") ) { 
            scanf("%d",&param1);
            AddNode(&list,param1);
        };
        if(!strcmp(command,"del") ) { 
            scanf("%d",&param1);
            if(!DelNode(&list,param1))
                printf("There is no given value in the list\n");
        };
        if(!strcmp(command,"cnt") ) { 
            printf("Number of nodes : %d\n",CntList(&list));
        };
        if(!strcmp(command,"cdv") ) { 
            printf("Number of unique nodes: %d\n",CdvList(&list));
        };
        if(!strcmp(command,"occ") ) { 
            scanf("%d",&param1);
            printf("There are %d entries of %d in list\n",OccList(&list,param1),param1);
        };
        if(!strcmp(command,"ran") ) { 
            scanf("%d %d",&param1,&param2);
            if( (tmp = RanList(&list,param1,param2))>=0)
                printf("Number of nodes within selected range is %d\n",tmp);
        };
        if(!strcmp(command,"end") )  
            break;
    };
    return 0;
};
9
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru