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

[C++] Динамические структуры данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица, нужно слегка переделать программу http://www.cyberforum.ru/cpp-beginners/thread659206.html
Вот есть программа #include "stdafx.h" #include <iostream> using namespace std; int Sum (int** arr, int N, int i) { int sum = 0; for (int j=0; j<N; j++) if (arr > 0)
C++ Определить наибольшее из всех отрицательных значений, наибольшее из всех значений, количество нулевых значений Доброго времени суток. Помоги пожалуйста,никак не получается. Использование функций в языке СИ, получающих и возвpащающих pазличное количество аpгументов Даны вещественные массивы A, B. Для каждого массива опpеделить: наибольшее из всех отpицательных значений, наибольшее из всех значений, количество нулевых значений. http://www.cyberforum.ru/cpp-beginners/thread659199.html
Бинарные деревья с обратной связью C++
Дан адрес P1 вершины дерева — записи типа TNode, содержащей поля Data (целого типа), Left, Right и Parent (типа PNode — указателя на TNode). Поля Left и Right указывают на дочерние вершины, а поле Parent — на родительскую вершину данной вершины (если вершина является корнем дерева, то ее поле Parent равно nil). Для данной вершины вывести указатели PL, PR и P0 на ее левую и правую дочерние вершины...
C++ Представляя строки матрицы, расположить их в соответствии с убыванием характеристик
Суть задания такая. Дана целочисленная прямоугольная матрица.Определите номер первого из столбцов,содержащих хотя бы 1 нулевой элемент.Характеристикой строки назовем сумму её отрицательных четных элементов. Представляя строки заданной матрицы,расположить их в соответствии с убыванием характеристик. Если можно то с коментами по строкам. Добавлено через 1 час 30 минут И ещё, программа которая...
C++ ООП http://www.cyberforum.ru/cpp-beginners/thread659191.html
Господа у меня возникло 2 вопроса по ООП т.к. только не давно начал его изучать . 1) Не как не могу понять для чего умные люди его создали , т.е. в чём прелести использование его в программах , кому не трудно объясни те или дайте ссылку где можно по этому поводу подчерпнуть информации . 2) Допустим есть такой код - #include <cstdlib> #include <iostream> using namespace std; class My{ ...
C++ Заменить отрицательные элементы одномерного массива целых чисел на нули Заменить отрицательные элементы одномерного массива целых чисел на нули, а затем подсчитать количество нулевых элементов. 1. отформатировать исходный код программы согласно требованиям к оформлению исходного кода; 2. использовать динамические массивы (размер массива вводится пользователем с проверкой ввода); 3. выявить ограничения на вводимые пользователем значения и, если таковые имеются, не... подробнее

Показать сообщение отдельно
Neorrawr
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 10
27.09.2012, 18:20     [C++] Динамические структуры данных
Здравствуйте.

Есть такой код в таких файлах:

Основной .cpp-файл программы
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
#include "stdafx.h"
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <iostream>
#include "node.h"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
Node *head = NULL;
Node *head2 = NULL;
int menu;
do
{
cout << "1. Insert;" << endl << "2. Delete;" << endl << "3. Print;" << endl << "0. Exit." << endl;
cout << "Enter number: ";
cin >> menu;
switch(menu)
{
case 1:
{
cout << "Enter the date: ";
int item;
cin >> item;
head = Insert(head, item);
}
break;
case 2:
{
cout << "Enter the element you want to delete: ";
int s;
int a = 0;
cin >> s;
for(int i = 0; i < s; i++)
{
if(i==s)
head = Delete(head, a);
else
{
head2 = Insert(head2, a);
head = Delete(head, a);         
}
}
for(int i = 0; i < s - 1; i++)
{
head2 = Delete(head2, a);
head = Insert(head, a);
}
}
break;
case 3:
{
Print(head);
}
break;
case 0:
{
cout << "good by ";
}
break;
default:
{
}
break;
}
}
while(menu!=0);
return 0;
}
Node.cpp
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
#include "stdafx.h"
#include <iostream>
#include "node.h"
using namespace std;
 
Node *Insert(Node *head, int item)
{
Node *x=new Node();
x -> data = item;
x -> next = NULL;
if(head==NULL)
{
head = x;
}
else
{
x -> next = head;
head = x;       
}
return head;
}
Node *Delete(Node *head, int &a)
{
Node *current=head;
{
if(current -> next==NULL)
{
head = NULL;
return head;
}
else
{
a = current -> data;
head = current -> next;
delete current;
return head;
}
}
}
void Print (Node *head)
{
if(head!=NULL)
{
cout << head -> data << endl;
Print(head -> next);
}
}
Node.h
C++
1
2
3
4
5
6
7
8
struct Node
{
int data;
Node *next;
};
Node *Insert(Node *head, int data);
Node *Delete(Node *head, int &a);
void Print (Node *head);
Проблема в том, что компилятор выдаёт такие ошибки:
Код
1>------ Построение начато: проект: Практическая работа № 2, Конфигурация: Debug Win32 ------
1>Построение начато 26.09.2012 21:57:05.
1>InitializeBuildStatus:
1>  Обращение к "Debug\Практическая работа № 2.unsuccessfulbuild".
1>ClCompile:
1>  Для всех выходных данных обновления не требуется.
1>  Практическая работа № 2.cpp
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.h(4): error C2460: Node::next: использует "Node", определяемый в настоящий момент
1>          h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.h(2): см. объявление "Node"
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\практическая работа № 2.cpp(26): error C2664: Insert: невозможно преобразовать параметр 1 из "Node *" в "Node"
1>          Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\практическая работа № 2.cpp(38): error C2664: Delete: невозможно преобразовать параметр 1 из "Node *" в "Node"
1>          Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\практическая работа № 2.cpp(41): error C2664: Insert: невозможно преобразовать параметр 1 из "Node *" в "Node"
1>          Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\практическая работа № 2.cpp(42): error C2664: Delete: невозможно преобразовать параметр 1 из "Node *" в "Node"
1>          Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\практическая работа № 2.cpp(47): error C2664: Delete: невозможно преобразовать параметр 1 из "Node *" в "Node"
1>          Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\практическая работа № 2.cpp(48): error C2664: Insert: невозможно преобразовать параметр 1 из "Node *" в "Node"
1>          Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\практическая работа № 2.cpp(54): error C2664: Print: невозможно преобразовать параметр 1 из "Node *" в "Node"
1>          Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1>  Node.cpp
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.h(4): error C2460: Node::next: использует "Node", определяемый в настоящий момент
1>          h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.h(2): см. объявление "Node"
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.cpp(17): error C2440: =: невозможно преобразовать "Node *" в "int"
1>          Не существует контекста, в котором такое преобразование возможно
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.cpp(34): error C2440: =: невозможно преобразовать "int" в "Node *"
1>          Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.cpp(45): error C2665: Print: ни одна из 2 перегрузок не может преобразовать все типы аргументов
1>          h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.h(8): может быть "void Print(Node)"
1>          h:\папка\папка\папка\практическая работа № 2\практическая работа № 2\node.cpp(40): или       "void Print(Node *)"
1>          при попытке сопоставить список аргументов "(int)"
1>  Создание кода...
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.67
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Файлы классов присоединены к программе, но ошибки выдаются всё равно. В чём может быть проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru