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

Построить класс для работы с односвязным списком - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Folayt
 Аватар для Folayt
1 / 2 / 1
Регистрация: 25.10.2012
Сообщений: 107
18.11.2013, 21:41     Построить класс для работы с односвязным списком #1
Построить класс для работы с односвязным списком. Элементы списка – действительные числа. Создать два упорядоченных по возрастанию списка, слить их в один (также упорядоченный по возрастанию), построив новый список.
Всё это нужно без использования SLT.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 21:41     Построить класс для работы с односвязным списком
Посмотрите здесь:

класс для работы со списком C++
C++ Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в списке List2 в у
C++ Разработать класс с набором функций для управления односвязным списком
C++ Построить класс для работы со списком
Построить класс для работы с односвязным списком C++
Задачу с использованием STL. Разработать шаблон класса для работы с односвязным списком C++
Построить класс для работы с односвязным списком C++
Построить класс для работы со списком. Элемент списка содержит информацию о заявке на авиабилет C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MarVaL
С++ Beginner
 Аватар для MarVaL
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
18.11.2013, 22:09     Построить класс для работы с односвязным списком #2
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
#include <iostream>
 
struct Node{
  int d;
  Node *next;
  Node *prev;
  
  Node()
    : next(0), prev(0) { }
  Node(int _d)
    : d(_d), next(0), prev(0) { }
  ~Node() { }
  
};
 
class List{
public:
  List()
    : Head(0), Tail(0) { }
  
  ~List(){
    Node *Temp = Head;
    while(Temp){
      Node *del = Temp->next;
      delete Temp;
      Temp = del;
    }
  }
  
  void add_node(int _d){
    Node *node = new Node(_d);
    if(!Head){
      Head = Tail = node;
    }else{
      Tail->next = node;
      node->prev = Tail;
      Tail = node;
    }
  }
  
  void show_list() const{
    Node *Temp = Head;
    for(; Temp; Temp = Temp->next){
      std::cout << Temp->d << " ";
    }
    std::cout << std::endl;
  }
  
  void sort(){
    bool state;
    Node *Temp;
    do{
      Temp = Head;
      state = true;
      while(Temp->next){
        if(Temp->d > Temp->next->d){
          int t = Temp->d;
          Temp->d = Temp->next->d;
          Temp->next->d = t;
          state = false;
        }
        Temp = Temp->next;
      }
    }while(!state);
  }
  
  friend List* operator+(const List& l1, const List& l2);
private:
  Node *Head;
  Node *Tail;
};
 
List* operator+(const List& l1, const List& l2){
  List *new_list = new List;
  Node *Temp = l1.Head;
  while(Temp){
    new_list->add_node(Temp->d);
    Temp = Temp->next;
  }
  Temp = l2.Head;
  while(Temp){
    new_list->add_node(Temp->d);
    Temp = Temp->next;
  }
  return new_list;
}
 
int main(){
  List *l1 = new List;
  List *l2 = new List;
  for(int i = 5; i > 0; --i)
    l1->add_node(i);
  
  for(int i = 9; i > 5; --i)
    l2->add_node(i);
  
  std::cout << "list 1: ";
  l1->show_list();
  std::cout << "list 2: ";
  l2->show_list();
  
  List *l3 = *l1 + *l2;
  
  std::cout << "obtained list: ";
  l3->show_list();
  std::cout << "sorted: ";
  l3->sort();
  l3->show_list();
  
  delete l1;
  delete l2;
  delete l3;
  return 0;
}
Folayt
 Аватар для Folayt
1 / 2 / 1
Регистрация: 25.10.2012
Сообщений: 107
18.11.2013, 22:48  [ТС]     Построить класс для работы с односвязным списком #3
Цитата Сообщение от MarVaL Посмотреть сообщение
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
#include <iostream>
 
struct Node{
  int d;
  Node *next;
  Node *prev;
  
  Node()
    : next(0), prev(0) { }
  Node(int _d)
    : d(_d), next(0), prev(0) { }
  ~Node() { }
  
};
 
class List{
public:
  List()
    : Head(0), Tail(0) { }
  
  ~List(){
    Node *Temp = Head;
    while(Temp){
      Node *del = Temp->next;
      delete Temp;
      Temp = del;
    }
  }
  
  void add_node(int _d){
    Node *node = new Node(_d);
    if(!Head){
      Head = Tail = node;
    }else{
      Tail->next = node;
      node->prev = Tail;
      Tail = node;
    }
  }
  
  void show_list() const{
    Node *Temp = Head;
    for(; Temp; Temp = Temp->next){
      std::cout << Temp->d << " ";
    }
    std::cout << std::endl;
  }
  
  void sort(){
    bool state;
    Node *Temp;
    do{
      Temp = Head;
      state = true;
      while(Temp->next){
        if(Temp->d > Temp->next->d){
          int t = Temp->d;
          Temp->d = Temp->next->d;
          Temp->next->d = t;
          state = false;
        }
        Temp = Temp->next;
      }
    }while(!state);
  }
  
  friend List* operator+(const List& l1, const List& l2);
private:
  Node *Head;
  Node *Tail;
};
 
List* operator+(const List& l1, const List& l2){
  List *new_list = new List;
  Node *Temp = l1.Head;
  while(Temp){
    new_list->add_node(Temp->d);
    Temp = Temp->next;
  }
  Temp = l2.Head;
  while(Temp){
    new_list->add_node(Temp->d);
    Temp = Temp->next;
  }
  return new_list;
}
 
int main(){
  List *l1 = new List;
  List *l2 = new List;
  for(int i = 5; i > 0; --i)
    l1->add_node(i);
  
  for(int i = 9; i > 5; --i)
    l2->add_node(i);
  
  std::cout << "list 1: ";
  l1->show_list();
  std::cout << "list 2: ";
  l2->show_list();
  
  List *l3 = *l1 + *l2;
  
  std::cout << "obtained list: ";
  l3->show_list();
  std::cout << "sorted: ";
  l3->sort();
  l3->show_list();
  
  delete l1;
  delete l2;
  delete l3;
  return 0;
}
Возникает такая ошибка
Невозможно найти или открыть файл PDB
уже и подключил символ сервер все равно не хочет работать

Добавлено через 4 минуты
Решил проблему запуском без отладки
Yandex
Объявления
18.11.2013, 22:48     Построить класс для работы с односвязным списком
Ответ Создать тему
Опции темы

Текущее время: 05:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru