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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
00884
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 42
#1

Циклический список. Решение задачи - C++

23.11.2012, 12:05. Просмотров 670. Ответов 1
Метки нет (Все метки)

Собственно нужно решить задачу с использованием технического списка. Проверить, удовлетворяют ли элементы списка (базовый тип integer) закону x=f(x0, h), где x – элемент списка, h – шаг, x0 – начальный элемент списка. Пример: x0=5, h=1. x1=6, x2=7, x3=8... Элементы списка удовлетворяют закону x=h(5,1).
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
#include <iostream>
#include <locale.h>
#include <cstdlib>
using namespace std;
 
struct element
{
    int data;
    element *next;
};
element *head=NULL;
element *current=NULL;
void addElement(int,element*,element*);
void myFunc(element*, int);
 
int main()
{
  setlocale(LC_CTYPE,"Russian");
  int n;
  cout<<"Введите количество элементов списка: ";
  cin>>n;
  cout<<"\nВвод элементов списка...\n";
  int inputData;
  //Вводим данные;
  for(int i=0;i<n;i++)
  {
    cout<<"Элемент списка №"<<i<<": ";
    cin>>inputData;
    addElement(inputData,head, current);
  }
  current->next=head;
  myFunc(head,n);
}
 
void addElement(int dataElement, element *pHead, element *pCurrent)
{
  element* pAdd=new element;
  pAdd->data=dataElement;
  if (pHead==NULL)
  {
    pAdd->next=pAdd;
    pHead=pAdd;
    head=pHead;
  }
  else
  {
    pAdd->next=pCurrent->next;
    pCurrent->next=pAdd;
  }
  pCurrent=pAdd;
  current=pCurrent;
}
 
 
 
/*Функция, проверяющая, удовлетворяют ли
элементы списка (базовый тип integer) закону
x=f(x0, h), где x – элемент списка, h – шаг,
 x0 – начальный элемент списка.
 Пример: x0=5, h=1. x1=6, x2=7, x3=8...
 Элементы списка удовлетворяют закону x=h(5,1)*/
void myFunc(element* pHead,int n)
{
  int h;
  cout.setf(cout.boolalpha);
  cout<<"Введите шаг h: ";
  cin>>h;
  element *pAdd=new element;
  element *pCurrent=new element;
  pAdd=pHead;
  pCurrent=pHead+2;
  bool *x=new bool;
  *x=true;
  for(int i=1;i<n;i++)
  {
    cout<<endl;
    if (pCurrent->data-pAdd->data!=h)
    {
      *x=false;
    }
    pAdd+=2;
    pCurrent+=2;
  }
  switch (*x)
  {
    case true:
      cout<<"Верно"<<endl;
      break;
    case false:
      cout<<"Не верно"<<endl;
      break;
    default:
      cout<<"Другой случай";
  }
  delete pAdd;
  delete pCurrent;
}
Честно говоря, только недавно начал изучать с++ и совсем недавно коснулся темы указателей. Не могу представить как тут можно использовать циклический список. Один раз прошелся по списку, заполнив его, второй раз прошелся, проверив условие. Додумался только добавить строчку
C++
1
current->next=head;
, что, вроде бы, делает список циклическим. Последний элемент указывает на начало списка. Достаточно ли этого?

Добавлено через 13 часов 31 минуту
ап!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 12:05     Циклический список. Решение задачи
Посмотрите здесь:

Циклический однонаправленный список - C++
Циклический однонаправленный список, упорядоченный по убыванию. Хотелось бы увидеть пример такого списка)

Организовать циклический список - C++
Привет, помогите пожалуйста хоть не много Организовать циклический список, содержащий данные о клиентах( наименования, шифр). Вывести на...

Циклический односвязный список - C++
&quot;Циклический односвязный список с зацикливанием «через указатель». Дополнительные операции: a) перенести все нечетные по порядку узлы в...

Односвязный циклический список! - C++
Парни ., срочно помощь нужна , завтра лабу надо сдать , туплю по жесткому)! Список односвязный, нужно сделать циклическим, я так понял...

циклический двунаправленный список - C++
Имеется циклический двунаправленный список содержащий числа 1,3,5,6,7,9,8,11 . Указатель на голову списка Р . Удалить из списка 3 и 8...

Циклический односвязный список - C++
Есть такой код, писал сам. В с++ я чайник, такчто сильно прошу не пинать. Вообщем прога компилится, но падает с ошибкой, при запуске( Что...

Циклический двусвязный список - C++
Здравствуйте, задали написать програмку: Организовать заданную структуру данных. Определить структуру элемента и написать подпрограммы...

двусвязный циклический список - C++
помогите исправить ошибки впрограмме не знаю че делать(компилятор dev-c++) заранее спасибо #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; ...

Односвязный циклический список - C++
#include&lt;iostream&gt; using namespace std; struct node { double x, y; node *next; }; class Linked { private:

Циклический связанный список - C++
Доброго времени суток. Пытаюсь посчитать количество значений в циклическом списке. Но всегда получается на 1 значение меньше. Или я должен...

Циклический двусвязный список - C++
Помогите написать функцию удаления всех элементов списка с заданным значением. Не могу додуматься как сделать. struct Node { int...

Двусвязный циклический список - C++
Необходимо было создать двусвязный циклический список,вот что у меня получилось: #include &lt;iostream&gt; #include &lt;clocale&gt; using...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
23.11.2012, 12:14     Циклический список. Решение задачи #2
00884, да, достаточно
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru