Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406

Кольцевой список

22.04.2010, 08:35. Показов 3575. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь написать программу,но столкнулся с проблемой.Написал ф-ю создания списка из n элементов,объявил её тип сначала как void ,выдал ошибку пробовал int тоже ошибка.Причем если тоже самое написать без ф-ии все нормально работает.Программирую в среде Dev c++
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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void makelist(List *&head,int n)
{
   List *p;
   int k;
   head=new List;
   head->next=head;
   head->pred=head;
   cout<<"vvedite elementbl spiska"<<endl;
   cin>>k; 
   while (n!=0)    
   {     
         p=new List;
         p->info=k;
         p->next=head;
         p->pred=head->pred;
         head->pred=p;
         p->pred->next=p;
         cin>>k;
         n--;  
   }  
}
 
int main()
{
    struct List
    {
       int info;
       List * pred,* next;
    };
   List* head; 
   int n; 
   cout<<"vvedite chislo elementov spiska"<<endl;
   cin>>n;
   
   makelist(head,n)     
 
   getch();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2010, 08:35
Ответы с готовыми решениями:

Реализовать кольцевой список. Как закольцевать список обычный?
Помогите пожалуйста реализовать кольцевой список. Я так понимаю, он может быть двусвязным и односвязным? Меня интересует односвязный....

кольцевой список
Граждане - товарищи, нужна помощь! Задание- Описать процедуру, которая формирует очередь Queue, включив в нее по одному разу элементы,...

Кольцевой список
Что нужно поменять,чтобы новые елементы добавлялись не в конец списка, а в начало? void List::Insert_end_list_2(int &amp;x) { ...

8
 Аватар для NickA
35 / 34 / 17
Регистрация: 28.04.2009
Сообщений: 67
22.04.2010, 08:40
Может так должно быть...
C++
1
void makelist(List *head,int n)
Если нет то так попробовать...
C++
1
void makelist(List **head,int n)
при вызове
C++
1
makelist(&head,n);
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
22.04.2010, 08:50  [ТС]
Нет,так тоже не работает
0
 Аватар для Sekt
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
22.04.2010, 11:09
C
1
2
3
4
5
6
7
8
9
void makelist(List *&head,int n)// так нельзя &head  
Она не видет ваш struct List;
исп так;
struct List {
List *next;
List *prev;
int info;
};
void makeList(List **elem,int number);
1
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
22.04.2010, 11:28  [ТС]
Исправил.
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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
struct List
    {
       int info;
       List *next;
       List *pred;
    };
int makelist(List **head,int n)
{
   List *p;
   int k;
   head=new List;
   head->next=head;
   head->pred=head;
   cout<<"vvedite elementbl spiska"<<endl;
   cin>>k; 
   while (n!=0)    
   {     
         p=new List;
         p->info=k;
         p->next=head;
         p->pred=head->pred;
         head->pred=p;
         p->pred->next=p;
         cin>>k;
         n--;  
   }  
}
 
int main()
{
    
   List* head; 
   int n; 
   cout<<"vvedite chislo elementov spiska"<<endl;
   cin>>n;
   
   makelist(&head,n);     
}
Теперь на тип ф-ии не ругается,но почему-то все ,что написано внутри неё компилятору определённо не нравится.
Хотя препод давал именно так.
0
 Аватар для Sekt
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
22.04.2010, 12:08
в 14 строке явно ошибка . нет возвр значения в конце.сам цикл по списку не смотрел .Исп debug строками.
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
22.04.2010, 12:15  [ТС]
Почему в 14 строке ошибка?
Создаем сторожа,новый элемент списка
head=new List
0
 Аватар для NickA
35 / 34 / 17
Регистрация: 28.04.2009
Сообщений: 67
23.04.2010, 12:14
Работа с head должна быть примерно такой:
C++
1
2
3
   (*head)=new List;
   (*head)->next=(*head);
   (*head)->pred=(*head);
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
23.04.2010, 16:52  [ТС]
На самом деле необходимо было просто вынести структуру в начало,а остальное все правильно было
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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
struct List
    {
       int info;
       List * pred,* next;
    };
void makelist(List *&head,int n)
{
   List *p;
   int k;
   head=new List;
   head->next=head;
   head->pred=head;
   cout<<"vvedite elementbl spiska"<<endl;
   cin>>k; 
   while (n!=0)    
   {     
         p=new List;
         p->info=k;
         p->next=head;
         p->pred=head->pred;
         head->pred=p;
         p->pred->next=p;
         cin>>k;
         n--;  
   }  
}
 
int main()
{    
   List* head; 
   int n; 
   cout<<"vvedite chislo elementov spiska"<<endl;
   cin>>n;
   
   makelist(head,n)     
 
   getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2010, 16:52
Помогаю со студенческими работами здесь

Кольцевой двунаправленный список
Дали задачу на практике. Пусть L обозначает кольцевой двунаправленный список с заглавным звеном.Описать функцию или процедуру, которая в...

Кольцевой односвязный список
Собственно что это и с чем его едят! Как реализовать, если это что-то страшное! Задача : сделать класс реализующий односвязный...

Двухсвязный Кольцевой Список
Дано вот такое задание:В двухсвязном кольцевом списке определить минимальный и максимальный элементы,а затем заменить их значения на сумму...

Кольцевой односвязный список
Реализовал класс для работы со списком студентов( использовал кольцевой односвязный список). Для навигации по классу используется...

Двунаправленный кольцевой список
Ребята, спасайте. Очень много дают информации, всё не успеваю освоить. Потихоньку стараюсь наверстать, но срочно необходимо решить 2...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru