Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 13.10.2018
Сообщений: 245

Изменить двусвязный циклический список

22.04.2021, 16:11. Показов 1305. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется двусвязный циклический список, как сделать его нециклическим?
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
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
    
    import java.util.Random;
    import java.util.Scanner;
 
   
    class Node{
        protected int data;
        protected Node next, prev;
     
     
        public Node(){
            next = null;
            prev = null;
            data = 0;
        }
 
      
        public Node(int d, Node n, Node p){
            data = d;
            next = n;
            prev = p;
        }
 
     
        public void setLinkNext(Node n){
            next = n;
        }
 
       
        public void setLinkPrev(Node p){
            prev = p;
        }    
 
     
        public Node getLinkNext(){
            return next;
        }
 
      
        public Node getLinkPrev(){
            return prev;
        }
        
      
        public void setData(int d){
            data = d;
        }
 
     
        public int getData(){
            return data;
        }
    }
     
   
    class linkedList{
        protected Node start;
        protected Node end ;
        public int size;
 
       
        public linkedList(){
            start = null;
            end = null;
            size = 0;
        }
 
 
        public boolean isEmpty(){
            return start == null;
        }
        
   
        public int getSize(){
            return size;
        }
 
   
        public void insertAtStart(int val){
            Node nptr = new Node(val, null, null);    
            if (start == null){
                nptr.setLinkNext(nptr);
                nptr.setLinkPrev(nptr);
                start = nptr;
                end = start;            
            }
            else{
                nptr.setLinkPrev(end);
                end.setLinkNext(nptr);
                start.setLinkPrev(nptr);
                nptr.setLinkNext(start);
                start = nptr;        
            }
            size++ ;
        }
 
        public void display(){
            System.out.print("Список = \n\n");
            Node ptr = start;
            if (size == 0){
                System.out.print("Пуст\n");
                return;
            }
            if (start.getLinkNext() == start){
                System.out.print(start.getData()+ " <-> "+ptr.getData()+ "\n");
                return;
            }
            System.out.print(start.getData()+ " <-> ");
            ptr = start.getLinkNext();
            while (ptr.getLinkNext() != start){
                System.out.print(ptr.getData()+ " <-> ");
                ptr = ptr.getLinkNext();
            }
            System.out.print(ptr.getData()+ " <-> ");
            ptr = ptr.getLinkNext();
            System.out.print(ptr.getData()+ "\n");
        }
    }
     
   
    public class Main{    
        public static void main(String[] args){ 
            Scanner scan = new Scanner(System.in);
 
          
            linkedList list = new linkedList();                   
            Random r=new Random();
            
            for(int i=0; i<10; i++) {
              int rnd=r.nextInt(20)-10;
              list.insertAtStart(rnd);
        }
 
              list.display();
       
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2021, 16:11
Ответы с готовыми решениями:

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

двусвязный список
Сделал односвязный список(и к нему удаление последнего, удаление по индексу, вставка по индексу), а двусвязный не могу, вернее сам класс...

Двусвязный список
Сформировать двусвязный список и вставить перед каждой буквой &quot;S&quot; номер ее вхождения. Вывести оба списка. помогите пожалуйста

8
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
22.04.2021, 16:17
Цитата Сообщение от Bronzor Посмотреть сообщение
циклический
как ты об этом узнал?
0
2 / 2 / 0
Регистрация: 13.10.2018
Сообщений: 245
22.04.2021, 16:45  [ТС]
Aviz__, Пример дали, сказали добавить несколько методов и сделать его нециркулярным, насколько я понимаю, у циркулярного где-то должно связываться начало (head) и (tail), но при этом, учитель сказал, что вышеприведённый код без конечного указателя (я знаю, что в java нету указателей), но как он может быть циркулярным, если нету tail.... не понятно.

Добавлено через 22 минуты
Coffeini, Можете, пожалуйста помочь? 3 часа осталось, а за 4 часа ничего не придумал, сижу читаю теорию, очень много вопросов. Видимо опять надо менять inserAnd метод и как-то сделать его нециклическим.
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
22.04.2021, 16:54
Bronzor, если горит, а самому влом вникать, напиши модераторам, может они подскажут людей, которые тебе нужны...
мое мнение
ты забил на учебу давно и это не поможет. без обид, братец.
0
2 / 2 / 0
Регистрация: 13.10.2018
Сообщений: 245
22.04.2021, 16:58  [ТС]
Цитата Сообщение от Aviz__ Посмотреть сообщение
забил на учебу
Забавно и одновременно обидно это слышать, особенно когда променял абсолютно всё и всех ради учёбы, сидишь целыми днями дома без общения и пытаешься разобраться во всём, видимо программирование не моё, извините, что трачу ваше время.
0
22.04.2021, 17:06

Не по теме:

Цитата Сообщение от Bronzor Посмотреть сообщение
видимо программирование не моё
возможно, эта мысль тебя приведет к твоему делу. а опыт вникания в it сделал тебя умным настолько, чтобы понять эту простую истину...

0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
22.04.2021, 19:23
Вроде вот так:
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
class linkedList {
    protected Node start;
    protected Node end;
    public int size;
 
 
    public linkedList() {
        start = null;
        end = null;
        size = 0;
    }
 
 
    public boolean isEmpty() {
        return start == null;
    }
 
 
    public int getSize() {
        return size;
    }
 
 
    public void insertAtStart(int val) {
        Node nptr = new Node(val, null, null);
        if (start == null) {
            start = nptr;
            end = nptr;
        } else {
            nptr.setLinkPrev(end);
            end.setLinkNext(nptr);
            end = end.getLinkNext();
        }
        size++;
    }
 
    public void display() {
        System.out.print("Список = \n\n");
        Node ptr = start;
        if (size == 0) {
            System.out.print("Пуст\n");
            return;
        }
        if (start.getLinkNext() == null) {
            System.out.print(start.getData());
            return;
        }
 
        System.out.print(start.getData() + " <-> ");
        ptr = start.getLinkNext();
        while (ptr.getLinkNext() != null) {
            System.out.print(ptr.getData() + " <-> ");
            ptr = ptr.getLinkNext();
        }
        System.out.print(ptr.getData());
    }
}
Добавлено через 5 минут

Не по теме:

А это задания из универа?
Просто через год тоже туда поступать и интересно вот стало...

1
2 / 2 / 0
Регистрация: 13.10.2018
Сообщений: 245
22.04.2021, 19:30  [ТС]
Нужно было без end (tail) реализовать, но спасибо.
[/JAVA]
Цитата Сообщение от Coffeini Посмотреть сообщение
А это задания из универа?
1 курс, европейский университет.
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
22.04.2021, 19:36
Цитата Сообщение от Bronzor Посмотреть сообщение
Нужно было без end
Вот так измени метод insertAtStart:
Java
1
2
3
4
5
6
7
8
9
    public void insertAtStart(int val) {
        Node nptr = new Node(val, null, null);
        size++;
        if (start != null) {
            nptr.setLinkNext(start);
            start.setLinkPrev(nptr);
        }
        start = nptr;
    }
В остальных местах удали end.
Цитата Сообщение от Bronzor Посмотреть сообщение
1 курс, европейский университет.
Блин, круто.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.04.2021, 19:36
Помогаю со студенческими работами здесь

Двусвязный список
Мне нужно реализовать динамическую структуру, работающую с любым типом данных. двусвязный список, сортировка подсчётом распределений. Для...

Двусвязный список
Привет всем, я (новичок в java) пытаюсь реализовать свой двусвязный список и столкнулся с проблемой в методе удаления элемента по индексу...

Односвязный и двусвязный список
Здравствуйте, мне необходимо реализовать структуру данных &quot;Список&quot; (односвязный и двусвязный). До этого ничем подобным я не занимался,...

Полу реверс в Linked List (двусвязный список)
Доброго времени суток! Пишу обертку с методами для следующей конструкции: class Node { int val; Node next; Node prev;...

Односвязный циклический список с выделенной головой
Уважаемые киберчане, выдали задание по реализации односвязного циклического списка с выделенной головой, а информации по этой теме на Java...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru