0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 60
1

Односвязный список переделать на основе массива

06.11.2020, 17:24. Показов 1322. Ответов 6
Метки java (Все метки)

мне дали задание, реализовать односвязный список на массиве. Я написал свой код, но без массива , не могу понять как сделать его на массиве.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2020, 17:24
Ответы с готовыми решениями:

Односвязный список на основе массива
Нужно создать односвязный список на основе массива. Понятия не имею, как это реализовать... Как...

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

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

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

6
Йуный падаван
Эксперт PythonЭксперт Java
13180 / 7606 / 2375
Регистрация: 21.10.2017
Сообщений: 18,780
06.11.2020, 17:32 2
fin222, ну и какой ответ ты хотел услышать?
Делай так же, только добавь контроль размера.
Или тебе код выложить?
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 60
06.11.2020, 17:33  [ТС] 3
Надеялся на то , что у кого то может остался код
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 60
06.11.2020, 18:29  [ТС] 4
Кликните здесь для просмотра всего текста

Java
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
{
 
    public static void main(String[] args) {
        List m1 = new List();
        Scanner scan = new Scanner(System.in);
        String s = "";
        int x = 0;
        int number;
        while (!"5".equals(s)) {
            System.out.println("1. Для добавления элемента в конец");
            System.out.println("2. Для добавления элемента начало ");
            System.out.println("3. Для удаления элемента ");
            System.out.println("4. Для вывода текущего ссостояия списка");
            System.out.println("5. Для выхода из приложения");
            s = scan.next();
            try {
                x = Integer.parseInt(s);
            } catch (NumberFormatException e) {
                System.out.println("Неверный ввод");
            }
            switch (x) {
                case 1:
                    System.out.println("Введите число:");
                    number = scan.nextInt();
                    m1.addBack(number);
                    break;
                case 2:
                    System.out.println("Введите число:");
                    number = scan.nextInt();
                    m1.addFront(number);
                    break;
                case 3:
                    System.out.println("Введите число:");
                    number = scan.nextInt();
                    m1.delElem(number);
                    break;
                case 4:
                    m1.showElem();
                    System.out.println();
                    break;
 
 
            }
 
        }
    }
}
...
Java
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
 class ListElement {
    ListElement next;
    int data;
}
 class List {
     private ListElement front;
     private ListElement rear;
 
     void addFront(int data) {
         ListElement a = new ListElement();
         a.data = data;
         if (front == null) {
             front = a;
             rear = a;
         } else {
             a.next = front;
             front = a;
         }
 
     }
 
      void addBack(int data) {
         ListElement a = new ListElement();
         a.data = data;
         if (rear == null) {
             front = a;
             rear = a;
         } else {
             rear.next = a;
             rear = a;
         }
     }
 
     void showElem() {
         ListElement t = front;
         while (t != null) {
             System.out.print(t.data + " ");
             t = t.next;
         }
     }
 
     void delElem(int data) {
         if (front == null)
             return;
         if (front == rear) {
             front = null;
             rear = null;
             return;
         }
         if (front.data == data) {
             front = front.next;
             return;
         }
         ListElement t = front;
         while (t.next != null) {
             if (t.next.data == data) {
                 if (rear == t.next) {
                     rear = t;
                 }
                 t.next = t.next.next;
                 return;
             }
             t = t.next;
         }
     }
 }

Можно ли как то переделать код, что бы был массив вместо листов?
0
Эксперт Java
3995 / 2600 / 470
Регистрация: 28.04.2012
Сообщений: 8,389
06.11.2020, 19:46 5
Цитата Сообщение от fin222 Посмотреть сообщение
реализовать односвязный список на массиве
Односвязный список по определению не массив. Хрень какая-то.
0
Эксперт Java
3636 / 2968 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
06.11.2020, 20:43 6
да, для этого нужно Listы заменить на массивы
0
0 / 0 / 0
Регистрация: 05.12.2017
Сообщений: 60
06.11.2020, 21:33  [ТС] 7
Вот именно это и не получается у меня сделать))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2020, 21:33
Помогаю со студенческими работами здесь

Переделать двусвязный список в односвязный список
//--------------------------------------------------------------------------- #include <stdio.h>...

Возможно ли как-то переделать односвязный список в двусвязный?
Собственно вопрос в названии. Возможно ли переделать односвязный список в двусвязный? Или проще...

Создать односвязный список на основе вектора для работы с целыми числами
Подскажите пожалуйста как создать односвязный список на основе вектора для работы с целыми...

На основе заданных прототипов реализовать функции-члены для пользовательского класса "Односвязный список"
Извиняюсь,забыла принт опреедлить Преподаватель дал прототипы функций ,которые надо определить для...

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

Список на основе массива
Собственно само задание: Реализовать ведение списка забронированных и списка купленных билетов в...


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

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

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