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

Создание библиотеки для работы со стеками - C++

Восстановить пароль Регистрация
 
AskeRik
0 / 0 / 0
Регистрация: 13.06.2014
Сообщений: 4
13.06.2014, 02:34     Создание библиотеки для работы со стеками #1
Есть задание "разработать библиотеку для работы со структурой данных типа стек" . Я создал 3 файла: первый "stek.cpp", в котором содержится функция main и вызов функций для работы со стеком:
stek.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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include "iostek.h"
using namespace std;
int main();
 
 
struct List
{
    int x; 
    List *Next,*Head; 
} mystek;
 
 
int main()
{
    int i,j,k;
    List *MyList=new List;
    MyList->Head=NULL; 
    cout<<"Vvedite kol-vo elementov steka: "<<endl;
    cin>>j;
    for ( k=0; k<j;k++)
    {
        cout<<"Vvedite element steka nomer "<<k+1<<endl;
        cin>>i;
        STEK::Add(i,&MyList); 
    }
   
    while (true)
    {
        cout<<endl;
         cout << "Viberite deistvie:"<<endl; cout<<" 1 - pokazat' stek"<<endl; cout<<" 2 - Dobavlenie elementa"<<endl; cout<<" 3- Udalenie elementa"<<endl; cout<<" 4 - Exit ";   cin >> k; 
 switch(k) 
 { 
 case 1: STEK::Show(MyList);    break; 
 case 2: STEK::Addelement(&MyList); break;
 case 3: STEK::delel(MyList); break;
 case 4: STEK::ClearList(MyList); cout<<"Memory is clear! "<<endl; return 0;
    default: cout << "Ne vuibrana funkciya "; return 1; 
 } 
    }
}

Второй cpp файл - файл, в котором содержится тело самой функции:
stek1.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
#include <iostream>
#include "iostek.h"
 using namespace std;
 namespace STEK
 {
 
void Add(int x, List **MyList)
{
    List *temp=new List;
    temp->x=x; 
    temp->Next=(*MyList)->Head; 
    (*MyList)->Head=temp; 
}
 
void Addelement( List **MyList) 
{
    int x;
    cout<<"Vvedite dobavlaemii element: "<<endl;
    cin>>x;
    List *temp=new List;
    temp->x=x;
    temp->Next=(*MyList)->Head;
    (*MyList)->Head=temp;
}
 
void Show(List *MyList) 
{
    List *temp=MyList->Head;
               
    while (temp!=NULL) 
    {
        cout<<temp->x<<" "; 
        temp=temp->Next; 
    }
}
 
void delel(List *MyList)
{
    if (MyList->Head!=NULL) 
        {
            
    List *temp=MyList->Head; 
    cout<<"Deleted element: "<<temp->x;
    temp=temp->Next;
        delete MyList->Head;
        MyList->Head=temp;}
    else cout<<"stek pystoi, dobav'te elementi"<<endl;
}
 
void ClearList(List *MyList)
{   
     while (MyList->Head!=NULL)  
     {   
        List *temp=MyList->Head->Next; 
        delete MyList->Head; 
        MyList->Head=temp; 
     }
}
 }

И 3-ий файл - заголовочный, где содержатся прототипы функции:
iostek.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef stek0113371
#define stek0113371
namespace STEK
{
    struct List
{
    int x; 
    List *Next,*Head; 
} mystek;
    void Add(int x, List **MyList);
    void Addelement( List **MyList) ;
    void Show(List *MyList) ;
    void delel(List *MyList);
    void ClearList(List *MyList);
}
#endif

При компиляции выбивает следующие ошибки:
Создание библиотеки для работы со стеками
1>e:\gavno dlya ychebi\tiitlaba1\tiitlaba1\stek.cpp(28): error C2664: STEK::Add: невозможно преобразовать параметр 2 из "List **" в "STEK::List **"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>e:\gavno dlya ychebi\tiitlaba1\tiitlaba1\stek.cpp(37): error C2664: STEK::Show: невозможно преобразовать параметр 1 из "List *" в "STEK::List *"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>e:\gavno dlya ychebi\tiitlaba1\tiitlaba1\stek.cpp(38): error C2664: STEK::Addelement: невозможно преобразовать параметр 1 из "List **" в "STEK::List **"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>e:\gavno dlya ychebi\tiitlaba1\tiitlaba1\stek.cpp(39): error C2664: STEK::delel: невозможно преобразовать параметр 1 из "List *" в "STEK::List *"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>e:\gavno dlya ychebi\tiitlaba1\tiitlaba1\stek.cpp(40): error C2664: STEK::ClearList: невозможно преобразовать параметр 1 из "List *" в "STEK::List *"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
Подскажите, пожалуйста, почему не работает?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2014, 02:34     Создание библиотеки для работы со стеками
Посмотрите здесь:

Какие есть библиотеки для работы с MYSQL C++
Функции библиотеки для работы со строками и символами. С++ C++
C++ Программирую в DEV C++ нужны библиотеки для работы с Excel
C++ Библиотеки для работы с http протоколом
Текстовые файлы. Функции библиотеки для работы со строками и символами C++
Существуют ли какие-нибудь библиотеки C++ для работы с HTML C++
Функции библиотеки для работы со строками и символами C++
Есть ли библиотеки для работы с большими числами C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1535 / 983 / 240
Регистрация: 05.06.2014
Сообщений: 2,963
13.06.2014, 05:29     Создание библиотеки для работы со стеками #2
Пытаюсь распечатать документ, принтер пишет "нет бумаги". В чем дело?
А сам как думаешь?
Может чернила кончились?

Русским языком написано "невозможно преобразовать параметр 1 из "List *" в "STEK::List *"".
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
13.06.2014, 08:32     Создание библиотеки для работы со стеками #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от AskeRik Посмотреть сообщение
Подскажите, пожалуйста, почему не работает?
Потому что структура List объявлена два раза - в пространстве имен STEK и в глобальном. Выберите что-то одно .
Yandex
Объявления
13.06.2014, 08:32     Создание библиотеки для работы со стеками
Ответ Создать тему
Опции темы

Текущее время: 20:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru