10 / 11 / 7
Регистрация: 11.05.2016
Сообщений: 113
1

Список на основе одномерного динамического массива

05.06.2016, 20:27. Показов 7898. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер!

Кто может привести в пример структуру такого списка? (на основе одномерного динамического массива) без использования классов.

Заранее спасибо!

Добавлено через 2 часа 5 минут
Выше

Добавлено через 13 часов 36 минут
Ну, ребят, никто не может помочь? Как хотя бы будет на статическом массиве.

Добавлено через 7 часов 26 минут
последний ап

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
struct ITEM {
int info; 
int next;
};
 
struct LIST {
int count;
ITEM *arr = new ITEM[count]; 
};
Вот так будет выглядеть?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2016, 20:27
Ответы с готовыми решениями:

Создать класс, реализующий однонаправленный список на основе одномерного массива
Здравствуйте, уважаемые гуру, асы и прочие гении программирования С++ Помогите пожалуйста решить...

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

Стек на основе динамического массива
Надо написать стек на основе динамического массива. Как выделить память под новый элемент? ...

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

6
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
05.06.2016, 20:43 2
Лучший ответ Сообщение было отмечено fire_Rising как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct ITEM
{
  int info; 
};
 
struct LIST
{
  int count;
  ITEM *arr;
};
 
LIST l;
l.count = 10;
l.arr = new ITEM[l.count];
1
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
05.06.2016, 20:46 3
если честно не совсем я понял задание
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <time.h>
 
struct List
{
    int a;
    int position;
};
 
int main()
{
    const int size = 10;
 
    List *list = new List[size];
    srand(clock());
    for (int i(0); i < size; i++)
    {
        list[i].position = i;
        list[i].a = rand();
    }
}

такое требуется? но это бред.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <time.h>
 
struct List
{
    int a;
    List *next;
};
 
int main()
{
        srand(clock());
    List *begin = new List;
    begin->a = rand();
    begin->next = NULL;
 
    begin->next = new List;
    begin->next->a = rand();
    begin->next->next = NULL;
}

так поумнее, но не совсем ладится с заданием про динамический массив.
1
10 / 11 / 7
Регистрация: 11.05.2016
Сообщений: 113
05.06.2016, 21:14  [ТС] 4
Stitch Igorek, вот задание подробнее
Миниатюры
Список на основе одномерного динамического массива  
0
10 / 11 / 7
Регистрация: 11.05.2016
Сообщений: 113
05.06.2016, 21:14  [ТС] 5
nmcf, а как можно сделать запас и все это обозначить?
0
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
05.06.2016, 21:41 6
Цитата Сообщение от fire_Rising Посмотреть сообщение
а как можно сделать запас и все это обозначить?
ну тут проще - создаешь массив из 100(например) элементов и начинаешь вести индексацию с 20(опять же, например).
ну что то типа этого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    const int size = 100;
    int *arr = new int[size];
    int begin = 20;
    int end = begin;
    arr[++end] = rand();    //добавляем число в конец списка
    arr[--begin] = rand();  //добавляем число в начало списка
    begin++;    //типа удалили первое число из списка
    end--;      //типа удалили последнее число из списка
 
    for (int i = begin; i <= end; i++)
        std::cout << arr[i];    //выводим наш "список" на консоль
}
0
10 / 11 / 7
Регистрация: 11.05.2016
Сообщений: 113
06.06.2016, 00:15  [ТС] 7
Stitch Igorek, а как в данном случае будет описана структура списка

Добавлено через 6 минут
Можете посмотреть, правильно ли я обращаюсь вообще, это я для примера написал так. И надо ли в структуре next? потому что вроде как и массив уже содержит указатель на следующий, но тут вроде как список описать даже сам не знаю))
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
#include <iostream>
#include <conio.h>
#include <Windows.h>
 
using namespace std;
 
struct ITEM {   
    int key;
};
 
struct LIST {
    ITEM* arr;
    int count;
 
};
 
void main() {
    LIST mas;
    LIST *begin = &mas;
    LIST *end = &mas;
    
    mas.count = 10;
    mas.arr = new ITEM[mas.count];
    
    begin->arr[5].key; //это запас 5 элементов
    //end = begin; здесь конец и начало совпадают, далее при вводе конец буду изменять
        //end->arr[7].key; к примеру
 
    mas.arr[5].key = 5;
 
    cout << begin->arr[5].key << endl;
 
    
 
 
    
    system("pause");
    return;
}
Добавлено через 16 минут
т.е. можно по-подробнее,как в данном случае обращаться с "next" элементами. вот к примеру правильно ли я заполняю список вообще
C++
1
2
3
4
5
6
7
8
9
begin->arr[5].key = 1;
begin->arr[6].key = NULL;
end = begin;
 
for (i = 5; i < mas.count; i++) { 
end->arr[i+1] = new ITEM[mas.count];
end = end->arr[i+1];
end->arr[i].key = 5;
end->arr[i+1] = NULL;
Добавлено через 8 минут
вот так подправил, т.к. как выше не принимает
C++
1
2
3
4
5
for (int i = 5; i < mas.count; i++) {
        end->arr = new ITEM[mas.count];
        end->arr = &end->arr[i + 1];
        end->arr[i].key = 5;
        end->arr[i + 1].key = NULL;
Добавлено через 10 минут
new ITEM[mas.count] здесь в скобках i+1 будет)
0
06.06.2016, 00:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2016, 00:15
Помогаю со студенческими работами здесь

Из динамического одномерного массива в статический
Здравствуйте! Я хотел бы попросить вас показать на данном примере, как изменится код программы, в...

Объявление динамического одномерного массива.
БИЛЕТ №14 3. Составьте программу, в которой объявляется динамический одномерный массив...

Удаление динамического одномерного массива
Я в шоке оказывается надо еще удалять массив из памяти когда его создаешь. Всегда писал на шарпе...

Сортировка динамического одномерного массива
void Sort(int *l, int n) { for (*(l + 1) = 0; *(l + 1)&lt;n - 1; *(l + 1)++) for (*(l + 2) = *(l...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru