Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Обработка символьных строк С++ Исправление ошибки.Пусть имеется словарь состоящий не менее чем из 20 слов .С клавиатуры вводятся слова,в которых может быть допущена одна из следующих ошибок - Искажена одна буква - Вставлена... https://www.cyberforum.ru/ cpp-beginners/ thread428207.html Вывести на экран два максимальных элемента всех нечетных строк массива. C++
Помогите пожалуйста, горю :( Работаю на суровом борланде 3.11 float M; int i,j, max1, max2; cout<<"\nМассив:"; for(i=0;i<4;i++) { cout<<"\n"; for(j=0;j<3;j++) {
Задача на структуры C++
моя попытка решения но я в нем не уверен int main() { struct {struct{char naim; char rezh;}film; struct {char fio; char rol;}act; struct{char naimkin;char adres; struct{int date;int time;}kino;...
C++ Помогите с задачами на функции в С++
Помогите пожалуйста с двумя задачами: 1)Определить сумму элементов до минимального элемента. Описать в виде отдельной функции количество элементов до максимального элемента массива. 2)Заменить...
C++ Кто знает как из DEVc++ транслировать в C++? https://www.cyberforum.ru/ cpp-beginners/ thread428292.html
Есть программа написанная в Dev, которая не работает в Visual C++. Как данную программу перевести в Си? В чем их особенности? Вот сама программа, если не трудно, то переведите в С++, ну или хотя бы... Как данную программу перевести в Си? Вот сама программа, если не трудно, то переведите в С++ В Си и обратно? ))))))
C++ помогите хоть с какой-нибудь.. не знаю как решать, направте пожалуйста cout <<y=SIN(a+X); по-моему нижним регистром и объявлен в <cmath> https://www.cyberforum.ru/ cpp-beginners/ thread428200.html
C++ проблема с закрытием экрана Вот код: #include <iostream> int main() { using namespace std; int carrots; cout << "how many carrots do you have?" << endl; cin >> carrots; cin >> carrots; после этого добавь cin.ignore(); https://www.cyberforum.ru/ cpp-beginners/ thread428282.html C++ Алгоритм подсчета упорядоченных строк матрицы https://www.cyberforum.ru/ cpp-beginners/ thread428221.html
Что не так? #include <stdio.h> int main() { int a; int i, j, k = 0, str = 0; for (i=0; i<4; i++) а что не так? не компилируется? что пишет? или неправильно считает? Скобки в for (i=0; i<4; i++) for (j=0; j<4; j++) scanf("%d", &a); не нужны?
C++ Найти номера строки не содержащей едениц в матрице Матрица K(m,m) состоит из нулей и единиц. Найти в ней номера хотя бы данной строки, не содержащих единицы, либо сообщить, что таковых нет. Матрицу ввести из файла. Размерность матрицы в файле какая? https://www.cyberforum.ru/ cpp-beginners/ thread428248.html C++ Объединение 2-х очередей
Здравствуйте. Подскажите пожалуйста, как можно объединить 2 не пустые очереди? Type front() { if(!head) return; Type tmp = head->info; return tmp; } этот метод возвращает обьект типа Type, но в блоке if он не возвращает ничего, поэтому и не...
Вот такой пирог с начинкой... C++
Работа со строками Пункты программы: 1. Заменить порядок символов в веденной строке на обратный. 2. Вывести номера позиций начала введенной подстроки в введенной строке. 3. Удалить одинаковые... Хоть бы указали си или с++, ну, что не запрещено то разрешено значит будем считать что можно и си и с++. 2. Вывести номера позиций начала введенной подстроки в введенной строке. #include <string>...
C++ Старик Хоттабыч, хочу, что бы результат возвращаемый функцией не стакался... Доброго времени суток, уважаемые форумчане. У меня такая проблемка. Возвращаемый функцией результат, а это у меня определенный элемент массива при определенном условии, при использовании в цикле... srand должен вызываться один раз, а не 20 Добавлено через 32 секунды int tSpeed(int, int); * * int rSpeed(int, int); и почему эти прототипы внутри функции? https://www.cyberforum.ru/ cpp-beginners/ thread428278.html
 Аватар для lemegeton
4883 / 2679 / 917
Регистрация: 29.11.2010
Сообщений: 5,767
15.01.2012, 12:06 0

Упорядоченный односвязный список - C++ - Ответ 2389290

15.01.2012, 12:06. Показов 14637. Ответов 3
Метки (Все метки)

Ответ

Цитата Сообщение от aquila Посмотреть сообщение
Собсна говоря, сам список готов (исходный код отсюда и брался ).
Слабый код, не очень подходит для задачи.
Если список сортированный, то накладываются некоторые ограничения на данные. Например, нельзя менять данные напрямую.

Из спортивного интересу. Без удаления элементов из списка. Для удаления элементов надо написать поиск элемента и удаление элемента из списка по итератору.
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
#include <iostream>
 
struct NodeBase {
  NodeBase *next;
  NodeBase() : next(this) {}
  NodeBase(NodeBase *next_) : next(next_) {}
};
 
template <class T>
struct NodeType : public NodeBase {
  NodeType(NodeBase *next_, const T &data_) : NodeBase(next_), data(data_) {}
  T data;
};
 
template <class T>
class SortedList {
 public:
  typedef NodeType<T> Node;
  class Iterator {
   public:
    Iterator(const Iterator &iterator) : node_(iterator.node_) {}
    Iterator(const NodeBase *node) : node_(node) {}
    Iterator &operator++() { node_ = node_->next; return *this; }
    const T &operator*() const { return static_cast<const Node*>(node_)->data; }
    const T &operator->() const { return static_cast<const Node*>(node_)->data; }
    bool operator==(const Iterator &other) { return other.node_ == node_; }
    bool operator!=(const Iterator &other) { return !(*this == other); }
   private:
    const NodeBase *node_;
  };
  SortedList() : base_() {}
  SortedList(const SortedList &other) : base_() {
    for (Iterator i = other.begin(); i != other.end(); ++i)
      insertSorted(*i);
  }
  ~SortedList() { clear(); }
  SortedList &operator=(const SortedList &other) {
    if (this != &other) {
      for (Iterator i = other.begin(); i != other.end(); ++i)
        insertSorted(*i);
      clear();
    }
    return *this;
  }
  void insertSorted(const T &data) {
    NodeBase *prev = &base_;
    NodeBase *next = base_.next;
    while (next != &base_ && static_cast<Node*>(next)->data < data) {
      next = next->next;
      prev = prev->next;
    }
    Node *node = new Node(next, data);
    prev->next = node;
  }
  Iterator begin() const { return Iterator(base_.next); }
  Iterator end() const { return Iterator(&base_); }  
  bool isEmpty() const {
    return base_.next == &base_;
  }
  void clear() {
    while (base_.next != &base_) {
      NodeBase *node = base_.next->next;
      delete base_.next;
      base_.next = node;
    }
  }
 private:
  NodeBase base_;
};
 
SortedList<int> operator*(const SortedList<int> &list, int multiplier) {
  SortedList<int> result;
  for (SortedList<int>::Iterator i = list.begin(); i != list.end(); ++i)
    result.insertSorted(*i * multiplier);
  return result;
}
 
template <class T>
std::ostream &operator<<(std::ostream &stream, const SortedList<T> &list) {
  for (typename SortedList<T>::Iterator i = list.begin(); i != list.end(); ++i)
    stream << *i << " ";
  return stream;
}
 
int main(int argc, char *argv[]) {
  SortedList<int> a;
  a.insertSorted(5);
  a.insertSorted(5);
  a.insertSorted(7);
  a.insertSorted(6);
  a.insertSorted(4);
  a.insertSorted(4);
  a.insertSorted(8);
  std::cout << a << std::endl;
  std::cout << (a * 2) << std::endl;
  std::cout << (a * -1) << std::endl;
  std::cout << std::endl;
}


Вернуться к обсуждению:
Упорядоченный односвязный список C++
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2012, 12:06
Готовые ответы и решения:

Сформировать и ввести упорядоченный односвязный список без использования list
Подскажите, как сформировать и ввести упорядоченный односвязный список без использования list. Заранее спасибо!!!

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список
друзья спасайте Сформировать список из 10 книг, используя динамическую структуру данных односвязный список С++

Создать класс «Квартира», в котором список комнат реализовать как односвязный список
Добрый день,написал фот такой клас по заданию:Создать класс «Квартира», в котором список комнат реализовать как односвязный список....

3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2012, 12:06
Помогаю со студенческими работами здесь

Односвязный список: заносить в новый список элементы исходного, которые больше заданного значения
Можете пожалуйста помочь в решении проблемы не. Не могу создать функцию которая будет с созданного заранее списка заносить в новый элементы...

Составить односвязный список на основе класса, объекты которого будут формировать этот список
Составить односвязный список на основе класса, объекты которого будут формировать этот список. В описание класса должны входить данные...

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на двусвязный список using namespace std; class person { ...

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный список студентов. Помогите пожалуйста,...

Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке.

0
Новые блоги и статьи
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class - средства для работы с неизменяемыми структурами данных, каждое из которых предлагает свой уникальный подход к решению этой задачи. История их появления весьма. . .
Создание производительны­­х API с Java и gRPC
Wired 04.03.2025
В разработке производительность и масштабируемость микросервисных приложений играют ключевую роль. Традиционные REST API, несмотря на свою популярность и простоту, не всегда способны обеспечить. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 знаменует собой значительный скачок в развитии Java, внося фундаментальные улучшения в производительность, безопасность и удобство разработки. Релиз включает множество революционых изменений,. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Современная блокчейн-разработка на Java предоставляет разработчикам широкий спектр возможностей. В отличие от Solidity, который ограничен экосистемой Ethereum, Java позволяет создавать как. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru