Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/29: Рейтинг темы: голосов - 29, средняя оценка - 5.00
2 / 3 / 7
Регистрация: 25.10.2012
Сообщений: 113
1

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

18.11.2013, 21:41. Показов 5975. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Построить класс для работы с односвязным списком. Элементы списка – действительные числа. Создать два упорядоченных по возрастанию списка, слить их в один (также упорядоченный по возрастанию), построив новый список.
Всё это нужно без использования SLT.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2013, 21:41
Ответы с готовыми решениями:

Построить класс для работы с односвязным списком
Построить класс для работы с односвязным списком. Элементы списка – слова. Создать список,...

Построить класс для работы с односвязным списком
Построить класс для работы с односвязным списком. Элемент списка – действительное число....

Построить класс для работы с односвязным списком
При решении задач необходимо, без использования STL, описать класс, который используется для...

Построить класс для работы с односвязным списком
Доброго времени суток, очень давно не обращался на ваш форум и вот снова прошу помощи. ...

2
С++ Beginner
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
18.11.2013, 22:09 2
Лучший ответ Сообщение было отмечено Folayt как решение

Решение

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;
}
1
2 / 3 / 7
Регистрация: 25.10.2012
Сообщений: 113
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 минуты
Решил проблему запуском без отладки
0
18.11.2013, 22:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2013, 22:48
Помогаю со студенческими работами здесь

Построить класс для работы с односвязным списком
Построить класс для работы с односвязным списком.Элементы списка действительные числа.Создать два...

Класс для работы с односвязным списком
Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить,...

Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в списке List2 в у
Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить,...

Построить класс для работы со списком
Построить класс для работы со списком. Элемент списка содержит информацию о заявке на авиабилет:...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru