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

Добавить функцию удаления ячейки списка массива

14.11.2016, 00:36. Показов 1373. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добавить функцию удаления ячейки списка массива,дописать ее в следующий кадр в метод deleteAfter(подобно как у добавления мы можем удалять только за данной ячейкой, потому что иначе нельзя исправить ячейку перед удаленной)
Python
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
class LinkedList:
 
    # инициализируем пустой список
      def __init__(self):
        self.first = None
        self.last = None
 
    # добавление в верхней части списка, новый элемент должен указывать на первый
    # и должнв исправить 'first' (a 'last' если список пустой)
    def pushFront(self, node):
        node.next = self.first
        self.first = node
        if self.last == None:
            self.last = node
 
    # подобное добавляем на конец только с различием,что последний элемент будет
    # указывать на новый
    def pushBack(self, node):
        if self.last == None:
            self.first = node
        else:
            self.last.next = node
        self.last = node
 
    # вложение в элемент списка (должен быть из этого списка
    # новый элемент должны вложить "на верхушку" между 'whereNode' и
    # 'whereNode.next'
    def insertAfter(self, whereNode, whatNode):
        whatNode.next = whereNode.next
        whereNode.next = whatNode
        if self.last == whereNode:
            self.last = whatNode
 
    def deleteAfter(self, node):
        pass
 
    def toString(self):
        if self.first == None:
            return "(empty list)"
        out = "("
        node = self.first
        while node != None:
            out += "(" + str( node.value ) + ")"
            out += " -> "
            node = node.next
        return out + "None)"
 
# Node несет только данные, сам не может добавлять в список
# дальшее -- для того чтобы не грозили,что через последний Node добавляем с список но
# не изменим 'last'
class Node:
    def __init__(self, value = None):
        self.value = value
        self.next = None
 
# Тест
 
l1 = LinkedList()
print( l1.toString() )
 
l1.pushFront( Node( 1 ) )
print( l1.toString() )
 
l1.pushBack( Node( 2 ) )
print( l1.toString() )
 
l1.pushFront( Node( 3 ) )
print( l1.toString() )
 
n4 = Node( 4 )
l1.pushFront( n4 )
print( l1.toString() )
 
n5 = Node( 5 )
l1.insertAfter( n4, n5 )
print( l1.toString() )
 
l1.deleteAfter( n4 )
print( l1.toString() )
Добавлено через 1 час 27 минут
Помогите!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2016, 00:36
Ответы с готовыми решениями:

Допрограммировать функцию delete для удаления ячейки дважды связвнного списка
class DoubleLinkedList: # инициализируем пустой список def __init__(self): ...

Добавить в класс List еще одну функцию удаления элемента из списка
Добавить в класс List еще одну функцию удаления элемента из списка. Параметр функции в данном...

Добавить символ в конец ячейки таблицы без удаления текста ячейки
Нужно добавить * в таблицу в строку 3 ячейка 1 вправо без удаления текста ячейки. $("#t1f tr:eq(2)...

Функция удаления ячейки из однонаправленного линейного списка
Добрый день, помогите написать функцию удаления ячейки из списка. Нужно чтобы пользователь указал...

5
438 / 430 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
14.11.2016, 01:45 2
Python
1
2
3
    def deleteAfter(self, node):
        if not node.next == None:
            node.next = node.next.next
Добавлено через 2 минуты
Слово Python в вашем нике настораживает
0
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 52
14.11.2016, 01:47  [ТС] 3
Подскажите,пожалуйста,где ее нужно вставить?
Спасибо!
0
438 / 430 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
14.11.2016, 01:50 4
Лучший ответ Сообщение было отмечено AlexPython как решение

Решение

Вместо
Python
1
2
    def deleteAfter(self, node):
        pass
1
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 52
14.11.2016, 01:57  [ТС] 5
Пока выдает тоже самое:
(empty list)
((1) -> None)
((1) -> (2) -> None)
((3) -> (1) -> (2) -> None)
((4) -> (3) -> (1) -> (2) -> None)
((4) -> (5) -> (3) -> (1) -> (2) -> None)
((4) -> (3) -> (1) -> (2) -> None)
Может нужно что-то исправить в конце?
0
438 / 430 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
14.11.2016, 02:01 6
Цитата Сообщение от AlexPython Посмотреть сообщение
Пока выдает тоже самое:
(empty list)
((1) -> None)
((1) -> (2) -> None)
((3) -> (1) -> (2) -> None)
((4) -> (3) -> (1) -> (2) -> None)
((4) -> (5) -> (3) -> (1) -> (2) -> None)
((4) -> (3) -> (1) -> (2) -> None)
Может нужно что-то исправить в конце?
в последней строчке удалилась (5)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2016, 02:01
Помогаю со студенческими работами здесь

Используя функцию filter, написать функцию для удаления из списка целых чисел всех элементов, совпадающих с образцом
- Используя функцию filter, написать функцию для удаления из списка целых чисел всех элементов,...

Используя функцию filter, написать функцию для удаления из списка целых чисел всех элементов с нечетными значениями
- Используя функцию filter, написать функцию для удаления из списка целых чисел всех элементов с...

Однонаправленый список. Функция удаления с конца списка, вставка и удаления из середины списка(код внутри)
Вот мой рабочий код, только не могу еще три функции дописать, которые удаляют из сконца списка,...

Добавить функцию удаления студента RemoveAt
Дана программа на С#, нужно в нее добавить функцию удаления студента RemoveAt. Он должен спрашивать...

Добавить функцию добавления и удаления студента
Дана программа на С#, нужно в нее добавить функцию добавления студента add и функцию удаления...

Написать функцию удаления элемента из списка
Надо написать функцию Void del (int value) , которая удаляет элемент в списке и Elem *searth (int...


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

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

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