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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
#1

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

22.04.2010, 08:35. Просмотров 1165. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2010, 08:35     Кольцевой список
Посмотрите здесь:

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

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

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

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

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

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

Кольцевой двусвязный список - C++
Приведите пожалуйста пример как его создать, добавить в него элемент и удалить элемент из такого списка.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NickA
35 / 34 / 2
Регистрация: 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);
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
22.04.2010, 08:50  [ТС]     Кольцевой список #3
Нет,так тоже не работает
Sekt
156 / 155 / 10
Регистрация: 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);
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
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);     
}
Теперь на тип ф-ии не ругается,но почему-то все ,что написано внутри неё компилятору определённо не нравится.
Хотя препод давал именно так.
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
22.04.2010, 12:08     Кольцевой список #6
в 14 строке явно ошибка . нет возвр значения в конце.сам цикл по списку не смотрел .Исп debug строками.
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
22.04.2010, 12:15  [ТС]     Кольцевой список #7
Почему в 14 строке ошибка?
Создаем сторожа,новый элемент списка
head=new List
NickA
35 / 34 / 2
Регистрация: 28.04.2009
Сообщений: 67
23.04.2010, 12:14     Кольцевой список #8
Работа с head должна быть примерно такой:
C++
1
2
3
   (*head)=new List;
   (*head)->next=(*head);
   (*head)->pred=(*head);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2010, 16:52     Кольцевой список
Еще ссылки по теме:

Кольцевой двусвязный список - C++
Что здесь нужно поменять, чтобы был кольцевой двусвязный список? #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; ...

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

Кольцевой односвязный список - C++
Доброго времени суток, требуется помощь в создании односвязного кольцевого списка. смог только этот быдлокод: struct stud { ...

Двусвязный кольцевой список - C++
Используя циклический двунаправленный список определить, симметрична ли данная строка символов.

Кольцевой список однозвязный - C++
Привет всем, разобрался с кольцевым двусвязным, простым двусвязным, односвязным. Но вот этот не лезет в голову. Хочу организовать...


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

Или воспользуйтесь поиском по форуму:
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
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();
}
Yandex
Объявления
23.04.2010, 16:52     Кольцевой список
Ответ Создать тему
Опции темы

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