Программа Для Работы С Двусвязным Нециклическим Списком. Инверсия Спис

Тема в разделе "C/C++/C#", создана пользователем siner, 9 ноя 2013.

  1. siner

    siner New Member

    Регистрация:
    5 ноя 2013
    Сообщения:
    4
    Симпатии:
    0
    Есть программа для работы с двухсвязным списком. Есть проблемы с функцией инверсии списка. Visual C++ выдает следующую ошибку:
    c:\documents and settings\1\мои документы\visual studio 2010\projects\11\11\11.cpp(175): error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
    Подскажите, пожалуйста, как это исправить.

    Код (Text):
    #include <iostream>
    #include <windows.h>
    using namespace std;

    class Node
    {
    public:
    int number;
    Node* next;
    Node* last;
    };

    void russia(const char*);

    void main()
    {
    short action = -1;
    Node* head = NULL;
    Node* tail = NULL;
    Node* ptrLast = NULL;

    while (1)
    {    
    russia("1. Добавить Элемент\n");
    russia("2. Просмотр Списка\n");
    russia("3. Инверсия списка\n");
    russia("0. Выход\n\n");
    russia("Ваш Выбор: ");
    cin>>action;

    if (action == 0)
    {
    system("CLS");
    break;
    }

    if (action == 1)
    {
    system("CLS");
    int numb = -1;
    russia("Введите Число: ");
    cin>>numb;
    Node* ptr = new Node;
    ptr->number = numb;
    ptr->next = NULL;
    tail = ptr;
    if (head == NULL)
    {
    head = ptr;
    ptrLast = ptr;
    ptr->last = NULL;
    system("CLS");
    continue;
    }
    ptr->last = ptrLast;
    ptrLast->next = ptr;
    ptrLast = ptr;
    system("CLS");
    continue;
    }

    if (action == 2)
    {
    system("CLS");
    Node* ptr = NULL;
    if (head == NULL)
    {
    russia("\t!!! СПИСОК ПУСТ !!!\n\n");
    system("PAUSE");
    system("CLS");
    continue;
    }
    russia("* * * * * СПИСОК: СЛЕВА НАПРАВО * * * * *\n\n");
    ptr = head;
    while (1)
    {
    cout<<ptr->number<<" ";
    if (ptr->next == 0)
    break;
    ptr = ptr->next;
    }
    cout<<"\n\n";
    system("PAUSE");
    system("CLS");
    continue;
    }

    if (action == 3)
    {
    system("CLS");
    Node* ptr = NULL;

    if (head == NULL)
    {
    cin >> ptr;

    int len = strlen(ptr);
    for (int i=0; i<(len-1)/2; i++)
    {
    char c = ptr[i];
    ptr[i] = ptr[len-1-i];
    ptr[len-1-i] = c;
    }

    cout << "Perevernutue simvolu:\n" << ptr << endl;
    cin >> ptr;
    return 0;
    }
    system("PAUSE");
    system("CLS");
    continue;
    }

    if (action > 3)
    {
    system("CLS");
    russia("\t!!! НЕВЕРНЫЙ ВЫБОР. ПОВТОРИТЕ ВВОД !!!\n\n");
    system("PAUSE");
    system("CLS");
    continue;
    }
    }
    }

    void russia(const char* rus)
    {
    char word[100];
    CharToOemA(rus, word);
    cout<<word;
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    код обрезался.

    Скинь на pastebin: http://pastebin.com/
    например (на форуме уже второй {третий?} год не работает подсветка кода)
     
  3. siner

    siner New Member

    Регистрация:
    5 ноя 2013
    Сообщения:
    4
    Симпатии:
    0
    http://pastebin.com/qSXsEVv0
     
Загрузка...

Поделиться этой страницей