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

Добавление нового элемента перед заданным элементом в списке

07.11.2020, 15:43. Показов 1672. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
 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;          //инициализируем данные.
         // указатель на следующий элемент автоматически инициализируется как null
         if (front == null) {    //если список пуст
             front = a;
             rear = a;     //то указываем ссылки начала и конца на новый элемент
         } else {
             a.next = front; //иначе новый элемент теперь ссылается на "бывший" первый
             front = a;      //а указатель на первый элемент теперь ссылается на new элемент
         }
 
     }
 
      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 addAfter(int data, int index) {
 
         int position = 0;
         ListElement current = front;
         while (current != rear && current.next != null && position != index) {
             current = current.next;
             position++;
         }
 
         if (index != position) {
             throw new IndexOutOfBoundsException("index: " + index);
         }
 
         ListElement element = new ListElement();
         element.data = data;
 
         if (current == null) {
             front = element;
             rear = element;
         } else if (current == rear){
             rear.next = element;
             rear = rear.next;
         } else {
             element.next = current.next;
             current.next = element;
         }
     }
 
     
 
 
 
     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;      //очищаем указатели начала и конца и exit
             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;                 //иначе ищем дальше
         }
     }
 }
как реализовать новый класс для добавления нового элемента перед заданным элементом?(как в addAfter , только перед элементом)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2020, 15:43
Ответы с готовыми решениями:

Добавление узла перед заданным в односвязном списке
Вот такой код я нашел, но он похоже с ошибками, нету * как минимум. проставил их но тоже не помогло...

Удаление элемента перед заданным в двусвязном списке
Здравствуйте! написал метод: public void delete_before(List list, Node node) { if(node.prev ==...

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

Вставка нового элемента в линейный односвязный список перед элементом с максимальным значением ключа
Привет, всем. Помогите, разобраться с добавлением нового элемента в линейный односвязный список...

0
07.11.2020, 15:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2020, 15:43
Помогаю со студенческими работами здесь

Добавление элемента перед элементом с заданной информативной частью
Двусвязный список. Есть функция добавления элемента после элемента с заданной информативной частью....

Список: создание, добавление последнего элемента, удаление перед заданным
Список: создание, добавление последнего элемента, удаление перед заданным.

Вставить элемент перед определенным элементом в списке
Имееться однонаправленный линейный список. Нужно вставить число перед определенным элементом в...

Вставить в вектор новый элемент перед элементом с заданным индексом
Здравствуйте. У меня следующая проблема: Мне в программе нужно в вектор вставить в определенное...

Вставить два элемента: первый — после максимального элемента, второй — перед максимальным элементом массива
вставить два элемента: первый- после максимального элемента, второй- перед максимальным элементом...

Удалить элементы с заданным значением, добавить перед каждым четным элементом 0
Здраствуйте, форумчане!!! у меня такая вот задача: 1. Сформировать одномерный массив целых...


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

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

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