Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ работа с файлами https://www.cyberforum.ru/ cpp-beginners/ thread129929.html
Помогите пожалуйста. Нужно составить программу, которая читает текстовый файл и в каждой строке все слова размещает в алфавитном порядке. Язык Си(консольная). Примечания: 1. Имя файла, который подлежит обработке, должно быть параметром программы. 2. Файл должен иметь не менее 10-15 строк текста. 3. Допускается ограничить максимальную длину строки в тексте 80 символами. 4....
C++ Проверить, каких букв больше: гласных или согласных
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных.
C++ Кодировщик https://www.cyberforum.ru/ cpp-beginners/ thread129923.html
Очень срочно нада Работа с стоками Кодировщик. Написать программу, перекодирующую строку в кодировке KOI в строку в кодировке Windows-1251 и обратно.
C++ Сравнение символов https://www.cyberforum.ru/ cpp-beginners/ thread129921.html
#include <iostream> using namespace std; int main() { char t = "ab"; char j = "ac"; if(t > j)cout << 5; return 0;
Посчитать количество букв в строке C++
Помогите пожалуйста начинающиму.... Условие задачи: "Необходимо ввести с клавиатуры строку и посчитать количество букв в введеной строке.
C++ Составить программу для нахождения максимального из 4 чисел Составить программу для нахождения максимального из 4 чисел.Используя функцию нахождения максимального https://www.cyberforum.ru/ cpp-beginners/ thread129912.html
C++ Необычный алгоритм Евклида https://www.cyberforum.ru/ cpp-beginners/ thread129905.html
Помогите,пожалуйста!Написал програму,не могу найти ,где в ней ошбка.Условие:дано натуральное число n ичислаа1,а2,а3,...,аn,которые вводятся с клавиатуры.Найти наибольший общий делитель для даных чисел.Вот код моей программы:]#include <stdio.h> #include <conio.h> main() { unsigned int i,n,s=1,a,b,c,d; printf("n="); scanf("%u",&n); for(i=1;i<=n;i++) {
C++ Наибольший общий делитель для массива целых чисел
Подскажите кто-нибудь алгоритм для нахождения НОД целых чисел в количестве более 2-х
C++ сортировка структуры https://www.cyberforum.ru/ cpp-beginners/ thread129875.html
помогите пожалуйста доделать , надо отсортировать стуктуру с помощью stl вот мой код: #include <iostream> #include <vector> #include <algorithm> #include "conio.h" #include <numeric> using namespace std; struct Zakaz { char inpunkt;
C++ Работа с массивами https://www.cyberforum.ru/ cpp-beginners/ thread129873.html
Помогите, пожалуйста :) 1. Вывести начальные индексы всех беспрерывных последовательностей чисел с теми, что не увеличиваются 2. Заполнить матрицу случайными числами. Развернуть матрицу на 90 градусов против часовой стрелки. 3. Реализовать алгоритм построения разнообразных проходных прямоугольных лабиринтов с одним входом и одним выходом. Спасибо большое всем, кто откликнется.
C++ найти число как можно ближе к заданному
Помогите ,кто может!Дано натуральное число n и последовательность действительных чисел.Найти число из этой последовательности как можно ближе к заданному целому числу к.Заранее спасибо.
C++ Функция: подсчет числа отрицательных элементов массива, и суммы положительных элементов матрицы написать функцию подсчета отрицательных элементов одномерного массива А(6) и сумму положит-х эл-ов матрицы В(6x6) https://www.cyberforum.ru/ cpp-beginners/ thread129852.html
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 9
0

Проблема с классом для линейного списка - C++ - Ответ 727913

15.05.2010, 12:42. Показов 861. Ответов 10
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Начал писать класс для организации хранения данных в виде линейного списка, вот Header file:
//---------------------------------------------------------------------------------------------------
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
#include <stdexcept>
typedef int value_type;
typedef unsigned int size;
class Node
    {
      public:
      Node *next;
      Node *prev;
      value_type d;
    };
 
 
class list
{
    private:
    Node *pbeg; //указатель на начало списка
    Node *pend; //указатель на конец списка
    size count;
    public:
    list();
    list(const value_type &r, size n); 
    bool IsEmpty()const{return (pbeg==0);} //проверка на пустоту
    void push_back(value_type d);             //добавление элементов с конца
    void push_front(value_type d);             //добавление элементов с начала 
    Node *operator[](int i)throw(std::out_of_range); //доступ к элементу по номеру
    Node *find(value_type d);                  //поиск по информационной части
    bool remove(value_type key);             //удаление по ключу
    long Size()const{return count;};         //возвращает кол-во элементов
    Node *insert(int key, int d);                //вставка элемента 
    void print();
};
 
 void list::push_back(value_type d)
 {
     if(!pbeg)
     {
         Node *pv=new Node;
         pv->d=d; pv->next=0;
         pv->prev=0;
         pbeg=pv;
         pend=pbeg;
         count=1;
     }
     else
     {
         Node *pv=new Node;
         pv->d=d; pv->next=0;
 
         pv->prev=pend;
         pend->next=pv;                                                              // (1)
         pend=pv;
         count++;
     }
 }
 
 void list::push_front(value_type d)
 {
     if(!pbeg)
     {
         Node *pv=new Node;
         pv->d=d; pv->prev=0;
         pv->next=0;
         pbeg=pv;
         pend=pbeg;
         count=1;
     }
     else
     {
         Node *pv=new Node;
         pv->d=d; pv->next=0;
 
         pv->next=pbeg;
         pbeg->prev=pv;                                                  //(2)
         pbeg=pv;
         count++;
     }
 }
 
list::list()
{
    pbeg=0;
    pend=pbeg;
}
 
list::list(const value_type &r, size n)
{
    list tmp;
    for(int i=1; i<=n; i++)
    tmp.push_front(r);
    *this=tmp;
}
 
 Node *list::operator[](int i)throw(std::out_of_range)
 {
   if(i<=count)
   {
       Node *pv=pbeg;
       int i=1;
       while(i<=count && pv)
       {
           pv=pv->next; i++;
 
       }
    return pv;
   }
   else throw std::out_of_range("Index out of range");
 }
 
  Node *list::find(value_type d)
 {
     Node *pv=pbeg;
     while(pv)
     {
         if(pv->d==d) break;
         pv=pv->next;
     }
     return pv;
 }
 
 bool list::remove(value_type key)
 {
     if(Node *pkey=find(key))
     {
         if(pkey==pbeg)
         {
             pbeg=pbeg->next;
             pbeg->prev=0;
         }
         else if(pkey==pend)
         {
             pend=pend->prev;
             pend->next=0;
         }
         else
         {
             (pkey->prev)->next=pkey->prev;
             (pkey->next)->prev=pkey->prev;
         }
         delete pkey;
         return true;
     }
     return false;
 }
 
 Node *list::insert(int key, int d)
 {
     if(Node *pkey=find(key))
     {
         Node *pv=new Node;
         pv->d=d;
         pv->next=pkey->next;
         pv->prev=pkey;
         pkey->next=pv;
         if(pkey!=pend) (pv->next)->prev=pv;
         else pend=pv;
     return pv;
     }
 return 0;
 }
 
 void list::print()
 {
  Node *pv=pbeg;
  while(pv)
  {
   cout<<pv->d<<' ';
   pv=pv->next;
  }
  cout<<endl;
 }
//-----------------------------------------------------------------------------------------------------
проблемы возникают с функциями push_back и push_front в местах помеченных как (1) и (2), где компилятор выдает ошибку Access violation.

Вернуться к обсуждению:
Проблема с классом для линейного списка C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2010, 12:42
Готовые ответы и решения:

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

Сравнить первый элемент линейного списка L1 со всеми элементами линейного списка L2
Как сравнить первый элемент линейного списка L1 со всеми элементами линейного списка L2

Индексатор для линейного списка (велосипед)
Здравствуйте. Возник вопрос: у меня есть класс, на основе которого я делаю лин. список. Он выглядит...

Использование линейного списка для хранения последовательности
Разработать программу, которая организует с использованием линейного списка хранение...

10
15.05.2010, 12:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2010, 12:42
Помогаю со студенческими работами здесь

Создать меню для однонаправленного линейного динамического списка
Всем привет. Написал программу для однонаправленного линейного динамического списка. Она читает...

Создать структуру данных для организации линейного списка
Создать структуру данных для организации линейного списка. Для идентификации каждый элемент списка...

Структура для линейного двунаправленного списка из комплексных чисел
Как создать структуру для линейного двунаправленного списка из комплексных чисел? Как саму...

Написать программу для однонаправленного линейного списка типа стек
Написать программу по созданию, добавлению, просмотру и решению поставленной задачи (в...

Спроектировать шаблон класса spisok для реализации односвязного линейного списка. Не работает сортировка
Здравствуйте! Очень нужна помощь в реализации программы. Задание: Спроектировать шаблон класса...

Привести пример реализации любого линейного списка списка с использованием лишь структур
Буду благодарен, если кто-нибудь сможет привести пример реализации любого линейного списка списка с...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru