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

Перегрузка оператора индексации для связанного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Эмуляция ввода с клавиатуры SendKeys.Send(); http://www.cyberforum.ru/cpp-beginners/thread754852.html
Нужна эмуляция ввода с клавиатуры. Что нужно поключить для использования метода Send(); ? И как его правильно использовать?
C++ Задача звучит так: Пользователь вводит строку символов, удалить из этой строки каждый 3-й по счёту элемент Если кто поможет, буду очень благодарен: Пользователь вводит строку символов, удалить из этой строки каждый 3-й по счёту элемент. http://www.cyberforum.ru/cpp-beginners/thread754825.html
C++ Описать структуру данных о студентах
Помогите пожалуйста описать структуру студент содержащую поля: фамилия, оценки по 4 предметам, размер стипендии. выбрать студентов имеющих худшую успеваемость из получивших стипендию. результат записать в выходной фаил
Динамическое выделение памяти для объекта класса C++
Скажите в чем отличие между A *ptr=new A() и A *ptr=new A;
C++ Встроенные функции http://www.cyberforum.ru/cpp-beginners/thread754795.html
нужны простейшие программы с применением встроенных функций delline и floor
C++ Вычислить значения функции y=a^x+a^b Здравсвуйте. Помогите, пожалуйста, исправить программу, вроде всё пишу правильно, но что-то она не хочет работать. Условие: Вычислить заначения функции y=a^x+a^b, где x и b сумма элементов x и b //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <math.h> #include <stdio.h> #include <conio.h>... подробнее

Показать сообщение отдельно
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
07.01.2013, 17:20  [ТС]     Перегрузка оператора индексации для связанного списка
~OhMyGodSoLong~, нашел в инете пример связанного списка, добавил перегрузку и вот что получилось:

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
// index_op.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
struct Node
{
   int data;
   Node *next;
};
 
//класс, описывающих объект "связанный список"
class List
{
private:
   Node *head; //"голова" связанного списка
   
public:
   List() //конструктор класса без параметров
   {
      head = NULL; //первого элемента пока нет
   }
   
   //метод, добавляющий новый узел в список
   void addNode(int d)
   {
      Node *nd = new Node; //динамически создаем новый узел
      
      nd->data = d;        //задаем узлу данные
      nd->next = NULL;     //новый узел в конце, поэтому NULL
      
      if(head == NULL)     //если создаем первый узел
         head = nd;
      else                 //если узел уже не первый
      {
         Node *current = head;
         
         //ищем в цикле предшествующий последнему узел
         while(current->next != NULL)
            current = current->next;
            
         //предшествующий указывает на последний
         current->next = nd;
      }
   }
   
   void printList()
   {
      Node *current = head;
      
      while(current != NULL)
      {
         cout << current->data << endl;
         current = current->next;
      }
   }
 
   void operator[](int num)
   {
       Node *current = head;
 
       for(int i = 0 ; i <= num; i++)
       {
           if(i != num)
                current = current->next;
           else
               cout << current->data << endl;
       }
 
   }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
   List myList;
   
   myList.addNode(5);
   myList.addNode(11);
   myList.addNode(27);
   myList.addNode(35);
   myList.addNode(50);
   
   cout << "Вывод: ";
    myList[1];
   
   return 0;
}
Теперь у меня возник другой вопрос, я занимаюсь по книжке Дейтелей, где и встретил это задание, но до этого даже и речи не было про списки... где можно взять хорошую информацию по этой теме? на форумах прочитал кое-что, но хочется лучше понять принцип... заранее спасибо!
 
Текущее время: 10:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru