1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 9

Ошибка в односвязном списке

31.03.2013, 22:59. Показов 998. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include<iostream>
#include<clocale>
using namespace std;
#define DEBUG 
 
 
 
class Monom{
protected:
    int Step,Kof;
public:
    Monom() {}
    ~Monom() {}
    void put_Step(int S) { Step=S; }
    void put_Kof(int K) { Kof=K; }
    int get_Step() { return Step; }
    int get_Kof() { return Kof; }
};
 
 
class Node{
    Monom *info;
public:
    Node() {}
    ~Node() {}
    Node *next;
    int count;
 
};
typedef Node *PNode;
PNode Head = NULL;
class Polinom{
    int rezult;
    int parametr;
public:
    Polinom() {}
    ~Polinom() {}
    void put_rezult() { cin>>rezult; }
    void put_parametr() { cin>>parametr; }
    int get_parametr() { return parametr; }
    int get_rezult() { return rezult; }
};
///////////////////////////////////////////////////////////////
PNode Crererewtr ();
void analizator();
void make_node(Node*);
void AddFirst (PNode, PNode) ;
void AddLast(PNode, PNode);
void AddAfter (PNode, PNode);
Monom First;
////////////////////////////////////////////////////////////////
int main()
{  
 
    setlocale(LC_ALL,"Russian");
    cout<<"Start >";
    cout.width(25);
    cout<<123<<"< End\n";
    //analizator();
    return 0;
}
 
void analizator()
{
 
    char ar[256]={0},*ptr=ar;
    int i=0,n=0;
    cin.getline(ar,256);
    while (*ptr!=0)
        if (*ptr++=='x')
            n++;
    ptr=ar;
 
    while (*ptr!=0){
        cout<<*ptr;
        ptr++;
    }
    ptr=ar;
    First.put_Kof(atoi(ptr));
 
    do ptr++;
    while (*ptr!='^');
    ptr++;
    First.put_Step(atoi(ptr));
    cout<<endl<<First.get_Kof();
    cout<<endl<<First.get_Step();
    cout<<endl<<n<<endl;
    return;
}
 
//void make_node(Node *ptr=NULL)
//{
//    Monom *m;
//  Node *p;
//  m=new Monom;
//  p=new Node;
//  *ptr->next = p;
//
//  return;
//}
PNode Crererewtr (  ) 
{ 
    PNode NewNode = new Node; 
    NewNode->count = 1; 
    NewNode->next = NULL; 
    return NewNode; 
}
 
void AddLast(PNode &Head, PNode NewNode) 
{ 
    PNode q = Head; 
    if (Head == NULL) { 
        AddFirst(Head, NewNode); 
        return; 
    } 
    while (q->next) q = q->next; 
    AddAfter(q, NewNode); 
}
 
 
void AddFirst (PNode &Head, PNode NewNode) 
{ 
    NewNode->next = Head; 
    Head = NewNode; 
}
 
void AddAfter (PNode p, PNode NewNode) 
{ 
    NewNode->next = p->next; 
    p->next = NewNode; 
}
Собственно что говорит компилятор.


3 IntelliSense: существует более одного экземпляра перегруженная функция "AddFirst", соответствующего списку аргументов:
функция "AddFirst(PNode, PNode)"
функция "AddFirst(PNode &Head, PNode NewNode)"
типы аргументов: (PNode, PNode) c:\Users\artem\Documents\Visual Studio 2012\Projects\ConsoleAp\ConsoleAp\dfdg.c pp 113

не совсем понимаю что нужно сделать,
если void AddFirst (PNode, PNode) ; меняю на
void AddFirst (PNode*, PNode) ;
то жалуется на вызов функции(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2013, 22:59
Ответы с готовыми решениями:

Ошибка в односвязном списке
Помогите решить эти 2 проблемы C4101: NextNode: неиспользованная локальная переменная (в 118 строке) C4703: используется потенциально...

Ошибка в односвязном списке
#include &quot;exception.cpp&quot; template &lt;class item&gt; class List { struct Element { item inf; Element *next; Element(item...

Ошибка с удалением элемента в односвязном списке
Здравствуйте! Вроде написал функцию удаления элемента в указанной позиции, но почему то не срабатывает. Где ошибка?Или если есть вариант...

4
 Аватар для Hellrider_
50 / 50 / 4
Регистрация: 12.03.2013
Сообщений: 171
31.03.2013, 23:07
В обьявлении функции тип принимает одно
C++
1
void AddFirst (PNode, PNode) ;
в определении уже другое
C++
1
void AddFirst (PNode &Head, PNode NewNode)
Обявлять нужно так было
C++
1
void AddFirst (PNode&, PNode);
1
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 9
31.03.2013, 23:14  [ТС]
премного благодарен, а если возникнут проблемы по это же программе то лучше создать новую тему? или же тут продолжать корректнее?
0
 Аватар для Hellrider_
50 / 50 / 4
Регистрация: 12.03.2013
Сообщений: 171
31.03.2013, 23:18
Думаю тут можно
0
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 9
02.04.2013, 01:17  [ТС]
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include<iostream>
#include<clocale>
using namespace std;
#define DEBUG 
 
 
 
class Monom{
protected:
    int Step,Kof;
public:
    Monom() {}
    ~Monom() {}
    void put_Step(int S) { Step=S; }
    void put_Kof(int K) { Kof=K; }
    int get_Step() { return Step; }
    int get_Kof() { return Kof; }
};
 
 
class Node{
    Monom *info;
public:
    Node() {}
    ~Node() {}
    Node *next;
    int count;
 
};
typedef Node *PNode;
PNode Head = NULL,p, where;
class Polinom{
    int rezult;
    int parametr;
public:
    Polinom() {}
    ~Polinom() {}
    void put_rezult() { cin>>rezult; }
    void put_parametr() { cin>>parametr; }
    int get_parametr() { return parametr; }
    int get_rezult() { return rezult; }
};
///////////////////////////////////////////////////////////////
PNode CreateNode (int);
void analizator();
void make_node(Node*);
void AddFirst (PNode&, PNode) ;
void AddLast(PNode&, PNode);
void AddAfter (PNode, PNode);
void AddBefore(PNode&, PNode, PNode);
Monom First;
////////////////////////////////////////////////////////////////
int main()
{  
 
    setlocale(LC_ALL,"Russian");
    //p = CreateNode ();
    //AddLast ( Head, p );
    //cout<<CreateNode()->count<<endl;
    analizator();
    return 0;
}
    
void analizator()
{
    char ar[256]={0},*ptr=ar;
    int i=0,n=0;
    cin.getline(ar,256);
    while (*ptr!='>')
        if(*ptr=='+'){
            *ptr++;
            p=CreateNode (atoi(ptr));
            AddLast ( Head, p );
        }
        p = Head;
while ( p ) { // проход по списку и вывод результатов
cout<<p->count<<endl;
p = p->next;
}
    /*char ar[256]={0},*ptr=ar;
    int i=0,n=0;
    cin.getline(ar,256);
    while (*ptr!=0)
        if (*ptr++=='x')
            n++;
    ptr=ar;
 
    while (*ptr!=0){
        cout<<*ptr;
        ptr++;
    }
    ptr=ar;
    First.put_Kof(atoi(ptr));
 
    do ptr++;
    while (*ptr!='^');
    ptr++;
    First.put_Step(atoi(ptr));
    cout<<endl<<First.get_Kof();
    cout<<endl<<First.get_Step();
    cout<<endl<<n<<endl;*/
    return;
}
 
//void make_node(Node *ptr=NULL)
//{
//    Monom *m;
//  Node *p;
//  m=new Monom;
//  p=new Node;
//  *ptr->next = p;
//
//  return;
//}
PNode CreateNode (int n) 
{ 
    PNode NewNode = new Node; 
    NewNode->count = n; 
    cout<<NewNode->count<<endl;
    NewNode->next = NULL;
    return NewNode; 
}
 
void AddLast(PNode &Head, PNode NewNode) 
{ 
    PNode q = Head; 
    if (Head == NULL) { 
        AddFirst(Head, NewNode);
        return; 
    } 
    while (q->next) q = q->next; 
    AddAfter(q, NewNode); 
}
 
 
void AddFirst (PNode &Head, PNode NewNode) 
{ 
    NewNode->next = Head; 
    Head = NewNode; 
}
 
void AddAfter (PNode p, PNode NewNode) 
{ 
    NewNode->next = p->next; 
    p->next = NewNode; 
}
 
void AddBefore(PNode &Head, PNode p, PNode NewNode)
{
PNode q = Head;
if (Head == p) {
AddFirst(Head, NewNode); 
return;
}
while (q && q->next!=p) 
q = q->next;
if ( q ) 
AddAfter(q, NewNode); 
}
void AddAfter (PNode p, PNode NewNode) 
{ 
    NewNode->next = p->next; 
    p->next = NewNode; 
}
 
void AddBefore(PNode &Head, PNode p, PNode NewNode)
{
PNode q = Head;
if (Head == p) {
AddFirst(Head, NewNode); // вставка перед первым узлом
return;
}
while (q && q->next!=p) // ищем узел, за которым следует p
q = q->next;
if ( q ) // если нашли такой узел,
AddAfter(q, NewNode); // добавить новый после него
}
не хочет проходить 133 строку, пример входной строки +237+32+233332+238 (всё упрощено=) )

Добавлено через 2 часа 17 минут
блин...вот полдня не работало, написал сюда и заработало..извиняюсь

Добавлено через 4 часа 29 минут
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
#include<iostream>
#include<clocale>
#include<cctype>
using namespace std;
#define DEBUG 
 
 
 
class Monom{
protected:
    int Step,Kof;
public:
    Monom() {}
    ~Monom() {}
    void put_Step(int S) { Step=S; }
    void put_Kof(int K) { Kof=K; }
    int get_Step() { return Step; }
    int get_Kof() { return Kof; }
};
 
 
class Node:public Monom{
    Monom *info;
public:
    Node() {}
    ~Node() {}
    Node *next;
    int count;
 
};
typedef Node *PNode;
PNode Head = NULL,p, where;
class Polinom{
    int rezult;
    int parametr;
public:
    Polinom() {}
    ~Polinom() {}
    void put_rezult() { cin>>rezult; }
    void put_parametr() { cin>>parametr; }
    int get_parametr() { return parametr; }
    int get_rezult() { return rezult; }
};
///////////////////////////////////////////////////////////////
PNode CreateNode (int);
void analizator();
void make_node(Node*);
void AddFirst (PNode&, PNode) ;
void AddLast(PNode&, PNode);
void AddAfter (PNode, PNode);
void AddBefore(PNode&, PNode, PNode);
Monom First;
////////////////////////////////////////////////////////////////
int main()
{  
 
    setlocale(LC_ALL,"Russian");
    //p = CreateNode ();
    //AddLast ( Head, p );
    //cout<<CreateNode()->count<<endl;
    analizator();
    return 0;
}
    
void analizator()
{
    char ar[256]={0},*ptr=ar;
    int i=0,n=0;
    cin.getline(ar,256);
    while (*ptr!=0){
        if(*ptr=='*'||*ptr=='>'){
            do{
                ptr--;
            }while(isdigit(*ptr));
            ptr++;
            p=CreateNode (atoi(ptr));
            AddLast ( Head, p );
            while(*ptr!='^'){
            ptr++;
            }
            ptr++;
            p->put_Step(atoi(ptr));
        }
        ptr++;
    }
        p = Head;
while ( p ) { 
cout<<'<'<<p->get_Kof()<<" -кофициэнты"<<endl;
cout<<'<'<<p->get_Step()<<" -степени"<<endl;
p = p->next;
}
    return;
}
 
PNode CreateNode (int n) 
{ 
    PNode NewNode = new Node; 
    NewNode->put_Kof(n);
    NewNode->next = NULL;
    return NewNode; 
}
 
void AddLast(PNode &Head, PNode NewNode) 
{ 
    PNode q = Head; 
    if (Head == NULL) { 
        AddFirst(Head, NewNode);
        return; 
    } 
    while (q->next) q = q->next; 
    AddAfter(q, NewNode); 
}
 
 
void AddFirst (PNode &Head, PNode NewNode) 
{ 
    NewNode->next = Head; 
    Head = NewNode; 
}
 
void AddAfter (PNode p, PNode NewNode) 
{ 
    NewNode->next = p->next; 
    p->next = NewNode; 
}
 
void AddBefore(PNode &Head, PNode p, PNode NewNode)
{
PNode q = Head;
if (Head == p) {
AddFirst(Head, NewNode); 
return;
}
while (q && q->next!=p) 
q = q->next;
if ( q ) 
AddAfter(q, NewNode); 
}
сейчас обрабатывает строку типа 543*x^34+22*x^423 нужна обработка <5*x^-2-42*x^4+456-5*x> подскажите алгоритм обработки( знаки ^ и * обязательны, если не задана степень, она равно 1.. и прочие похожие условности
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2013, 01:17
Помогаю со студенческими работами здесь

Конструктор в односвязном списке
В общем, я только начинаю разбираться в программировании, и у меня возник такой вопрос: как работает конструктор, а именно мне нужно...

Поиск в односвязном списке
Добрый всем день. Знаю что тема неоднократно поднималась. Помогите реализовать поиск по односвязному списку. Сильно не пинайте, я только...

Remove_at() в односвязном списке
Привет. Не пойму как в данном(рабочем) коде, при удалении элемента посреди списка, предыдущему элементу дается указатель на следующий (то...

Поиск и удаление в односвязном списке
Помогите с удаление элемента по ключу(номеру этажа). При удалении 2-го элемента в списке, удаляется вместе с 1-ым, но если удалять 3, то 2...

Реализация сортировки в односвязном списке
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; /* * односвязный список * реализация ...


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

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

Новые блоги и статьи
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
Настройка MTProxy
Loafer 11.06.2025
Дополнительная информация к инструкции по настройке MTProxy: Перед сборкой проекта необходимо добавить флаг -fcommon в конец переменной CFLAGS в Makefile. Через crontab -e добавить задачу: 0 3. . .
Изучаем Docker: что это, как использовать и как это работает
Mr. Docker 10.06.2025
Суть Docker проста - это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнер, если говорить образно, это запечатанная коробка, в которой находится ваше приложение вместе. . .
Тип Record в C#
stackOverflow 10.06.2025
Многие годы я разрабатывал приложения на C#, используя классы для всего подряд - и мне это казалось естественным. Но со временем, особенно в крупных проектах, я стал замечать, что простые классы. . .
Разработка плагина для Minecraft
Javaican 09.06.2025
За годы существования Minecraft сформировалась сложная экосистема серверов. Оригинальный (ванильный) сервер не поддерживает плагины, поэтому сообщество разработало множество альтернатив. CraftBukkit. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru