Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Gabberr
103 / 103 / 19
Регистрация: 13.10.2009
Сообщений: 404
1

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

22.04.2010, 08:35. Просмотров 1282. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2010, 08:35
Ответы с готовыми решениями:

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

Кольцевой список
Что нужно поменять,чтобы новые елементы добавлялись не в конец списка, а в...

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

Кольцевой список STL
Добрый день, такой вопрос: можно ли работать с STL-списком как с кольцевым?...

Двусвязный кольцевой список
подскажите пожалуйста как будит выглядеть Двусвязный кольцевой список? ...

8
NickA
35 / 34 / 17
Регистрация: 28.04.2009
Сообщений: 67
22.04.2010, 08:40 2
Может так должно быть...
C++
1
void makelist(List *head,int n)
Если нет то так попробовать...
C++
1
void makelist(List **head,int n)
при вызове
C++
1
makelist(&head,n);
0
Gabberr
103 / 103 / 19
Регистрация: 13.10.2009
Сообщений: 404
22.04.2010, 08:50  [ТС] 3
Нет,так тоже не работает
0
Sekt
157 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 637
22.04.2010, 11:09 4
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
103 / 103 / 19
Регистрация: 13.10.2009
Сообщений: 404
22.04.2010, 11:28  [ТС] 5
Исправил.
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
157 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 637
22.04.2010, 12:08 6
в 14 строке явно ошибка . нет возвр значения в конце.сам цикл по списку не смотрел .Исп debug строками.
0
Gabberr
103 / 103 / 19
Регистрация: 13.10.2009
Сообщений: 404
22.04.2010, 12:15  [ТС] 7
Почему в 14 строке ошибка?
Создаем сторожа,новый элемент списка
head=new List
0
NickA
35 / 34 / 17
Регистрация: 28.04.2009
Сообщений: 67
23.04.2010, 12:14 8
Работа с head должна быть примерно такой:
C++
1
2
3
   (*head)=new List;
   (*head)->next=(*head);
   (*head)->pred=(*head);
0
Gabberr
103 / 103 / 19
Регистрация: 13.10.2009
Сообщений: 404
23.04.2010, 16:52  [ТС] 9
На самом деле необходимо было просто вынести структуру в начало,а остальное все правильно было
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
23.04.2010, 16:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2010, 16:52

кольцевой список. STL
В общем, есть такая проблема. Нужно реализовать кольцевой список,...

Двусвязный кольцевой список
Здравствуйте, подскажите пожалуйста где ошибка, список ложится при выводе,...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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