Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
VKhan
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 46
1

Связанный список

07.06.2012, 21:18. Просмотров 705. Ответов 1
Метки нет (Все метки)

ребят,нужна помощь. короче дело в том,что нужно "то есть тебе нужно поменять местами ссылки друг на друга.. то есть когда ты считываешь элемент списка надо в переменную следующего элемента записывать адрес того что ты считал до него а в переменную предыдущего записывать NULL , потом когда считаешь следующий элемент ты вместо NULL ЭТОГО ЗАПИШЕШЬ АДРЕС ТОГО КОТОРЫЙ ТЫ ТОЛЬКО СОЗДАЛ , И ТАК ПО КРУГУ"

вот сама задача:
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
#include <stdio.h>
#include <stdlib.h>
 
struct list
{
    int n;
    struct list *z;// z - указатель на следуюший элемент списка
};
int main()
{
    struct list *beg=NULL,*cur,*end=NULL; //cur(current) - это всегда указатель на текущее звено ;
                                          //beg - указатель на переменную;
                                          //end - указатель на последнее звено;
    int d=0,k,i;
    printf("Enter numbers: ");
    while(1)
    {
        cur=malloc(sizeof(struct list));
        scanf("%d",& cur->n);
        if(cur->n==0)
        {
            free(cur);
            break;
        }
        if((beg==NULL) && (end==NULL))
            end=cur;
        else
            cur->z=beg;
        beg=cur;
        end->z=NULL;
        d++;
    }
    printf("Reverse --->   ");
    cur=beg;
    while(cur!=NULL)
    {
        printf("%d ",cur->n);
        cur=cur->z;
    }
    printf("\nDeleted link,#:"); //номер удаляемого звена;
    scanf("%d",&k);
    struct list *c1;//c1 - вспомогательный указатель на структуру;
    if(k==1)
    {
        c1=beg;
        beg=beg->z; // beg->z второе звено списка
        free(c1);
    }
    else
    {
        c1=beg;
        cur=c1->z;
        i=2;
        while(cur!=NULL)
        {
            if(i==k)
            {
                c1->z=cur->z;
                free(cur);
                break;
            }
            c1=c1->z;
            cur=cur->z;
            i++;
        }
    }
    cur=beg;
    while(cur!=NULL)
    {
        printf("%d ",cur->n);
        cur=cur->z;
    }
    printf("\nAdd link, #: ");//номер добавляемого звена;
    scanf("%d",&k);
    if(k==1)
    {
        cur=malloc(sizeof(struct list));
        printf("\nSignificance level: ");//Значние звена
        scanf("%d",& cur->n);
        cur->z=beg;
        beg=cur;
    }
    else
    {
        i=2;
        cur=beg;
        while(cur!=NULL)
        {
            if(k==i)
            {
                c1=malloc(sizeof(struct list));
                c1->z=cur->z;
                cur->z=c1;
                printf("\nSignificance level(значение): ");//Значение звена
                scanf("%d ",& c1->n);
                break;
            }
            i++;
            cur=cur->z;
        }
    }
    cur=beg;
    while(cur!=NULL)
    {
        printf("%d ",cur->n);
        cur=cur->z;
    }
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 21:18
Ответы с готовыми решениями:

Связанный список. Создать, записать в связный список последовательность слов,обозначающих месяцы года,заданных пользователем
Создать связанный список.Кроме информационных полей он должен обязательно...

Связанный список
Всем доброго время суток, написать программу демонстрации связанного списка,...

Связанный список.
Компилятор ругается на строку 169 In member function `virtual Node*...

Связанный список
Не могу обратиться к методу класса Node хотя они выраженны как public: void...

Связанный список
Доброе утро есть ли у кого пример Связанного списка. И чем он вообще...

1
David Sylva
1294 / 956 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
08.06.2012, 17:59 2
Лучший ответ Сообщение было отмечено VKhan как решение

Решение

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
#include <iostream> 
using namespace std; 
 
struct link // структура список
{ 
    int data; // данные 
    link* next; // указатель на следующий
}; 
 
class linklist 
{ 
private: 
    link* first; // указатель на начало
public: 
    linklist() { first = NULL; } // указавает в ненужное место
    void additem(int d); // добавляем элемент
    void display(); // выводим
}; 
 
void linklist::additem( int d) 
{ 
    link* newlink = new link; // создаём ровый элемент
    newlink->data = d; 
    newlink->next = first; // новый указывает на начало
    first = newlink; // first указывает на новый
} 
 
void linklist::display() 
{ 
    link* current = first; // указатель текущий указывает на начало
    while(current) 
    { 
        cout << current->data << endl;  
        current = current->next; 
    } 
} 
 
int main() 
{ 
    linklist li; 
 
    li.additem(10); 
    li.additem(11); 
    li.additem(12); 
 
    li.display(); 
 
    return 0;
}
Вот пример связного списка
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2012, 17:59

Циклический связанный список
Доброго времени суток. Пытаюсь посчитать количество значений в циклическом...

Связанный список (ООП)
Ребят , помогите с лабой пожалуйста. Вот задание : Створити динамічний клас...

Однонаправленный связанный список
вот задание Однонаправленный связанный список Тип информационной части узла...


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

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

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