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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AskeRik
0 / 0 / 0
Регистрация: 13.06.2014
Сообщений: 4
#1

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

13.06.2014, 02:34. Просмотров 621. Ответов 2
Метки нет (Все метки)

Есть задание "разработать библиотеку для работы со структурой данных типа стек" . Я создал 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, приведение в стиле С или приведение в стиле функции
Подскажите, пожалуйста, почему не работает?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2014, 02:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание библиотеки для работы со стеками (C++):

Создание библиотеки для работы с полиномами - C++
Необходимо реализовать библиотеку,которая позволяет работать с полиномами от одной переменной. К основным операциям относятся (+, - , * ,...

Создание функции для работы со стеками по шаблону - C++
Доброго времени суток. Решил написать ряд универсальных функций, которые бы работали со стеками на основе списков, а заодно разобраться с...

Библиотеки для работы с полигонами 2D - C++
Добрый день. Какие есть библиотеки для работы с двумерными полигонами на C++? Конкретно интересует возможность починить полигоны -...

Библиотеки для работы с http протоколом - C++
Здорова господа!!! Пишу бота для mail.ru думал что будет легко просто используешь curl и все, а от фиг там. Делаю post авторизацию все...

Посоветуйте библиотеки для работы по UDP протоколу - C++
Здравствуйте, посоветуйте пожалуйста библиотеки и возможно литературу в чтобы разобраться и реализовать передачу данных в программе по UDP...

Есть ли библиотеки для работы с большими числами - C++
Доброй ночи! Какие вы могли бы порекомендовать библиотеки для работы с большими числами в языке C/C++?

2
Renji
2002 / 1370 / 309
Регистрация: 05.06.2014
Сообщений: 3,904
13.06.2014, 05:29 #2
Пытаюсь распечатать документ, принтер пишет "нет бумаги". В чем дело?
А сам как думаешь?
Может чернила кончились?

Русским языком написано "невозможно преобразовать параметр 1 из "List *" в "STEK::List *"".
0
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
13.06.2014, 08:32 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от AskeRik Посмотреть сообщение
Подскажите, пожалуйста, почему не работает?
Потому что структура List объявлена два раза - в пространстве имен STEK и в глобальном. Выберите что-то одно .
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2014, 08:32
Привет! Вот еще темы с ответами:

Какие есть библиотеки для работы с MYSQL - C++
Всем привет. Я ищу простую (С++) библиотеку для работы с MYSQL. Программа консольная, среда Visual Studio 9-10 Сурс из официального...

Библиотеки для работы с джейсоном, не требующие dll - C++
Судя по всему, jsoncpp что я пытался использовать обязует таскать с собой лишнюю длл, что меня совершенно не устраивает. Можно как-нибудь...

Существуют ли какие-нибудь библиотеки C++ для работы с HTML - C++
Подскажите пожалуйста, существуют ли какие-нибудь библиотеки С++ для работы с HTML (вывод формы из файла html, получение значений из полей,...

Программирую в DEV C++ нужны библиотеки для работы с Excel - C++
Здравствуйте, столкнулся с необходимостью обращаться на r/w к Excel файлу. При чем программа предположительно будет работать на одной из...


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

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

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