Я написал код, но думаю, что функция push не работает, поскольку когда я вызываю функцию отображения, в связанном списке не отображается ни один элемент. Расскажите, пожалуйста, как добавлять элементы в связанный список и объясните шаги. Я думаю, что Last_pointer считается локальной переменной и не сохраняет ее последнее значение. Если каждый раз я объявляю последний_указатель, он не будет добавляться к следующему узлу.
Выход:
Linked list before any swapping
key1 is not present in the list
key1 is not present in the list
key1 is not present in the list
____________________
# Swapping between two nodes present in linkedlist
class node:
def __init__(self,data):
self.data=data
self.next=None
class linkedlist:
def __init__(self):
self.head=None
def push(self,newdata):
newnode=node(newdata)
if(self.head==None):
last_pointer=self.head
last_pointer=newnode
last_pointer=last_pointer.next
else:
last_pointer.next=newnode
last_pointer=last_pointer.next
def swapnodes(self,key1,key2):
node1=self.head
node2=self.head
#if elements are similar
if(key1==key2):
print("keys are similar")
return
#find previous of element and element location in the list
while(node1):
if(node1==key1):
break
prevofnode1=node1
node1=node1.next
while(node2):
if(node2==key2):
break
prevofnode2=node2
node2=node2.next
#if elements are not present in the list
if(node1==None):
print("key1 is not present in the list")
return
if(node2==None):
print("key2 is not present in the list")
return
#if node present at beginning or at mid or at end
temp1=node2.next
temp2=node1.next
if(prevofnode1==None):
self.head=node2
node2.next=node1.next
prevofnode2=node1
node1.next=temp1
temp1=None
else:
prevofnode1=node2
node2.next=node1.next
prevofnode2=node1
node1.next=temp1
temp1=None
if(prevofnode2==None):
self.head=node1
node1.next=node2.next
prevofnode1=node2
node2.next=temp2
temp2=None
else:
prevofnode2=node1
node1.next=node2.next
prevofnode1=node2
node2.next=temp2
temp2=None
def display(self):
temp=self.head
while(temp):
print(temp.data)
temp=temp.next
llist=linkedlist()
llist.push(22)
llist.push(92)
llist.push(-20)
llist.push(2)
llist.push(23)
llist.push(102)
print("Linked list before any swapping")
llist.display()
llist.swapnodes(22,102)
llist.swapnodes(22,-20)
llist.swapnodes(22,13)
llist.display()
Подробнее здесь: https://stackoverflow.com/questions/556 ... in-these-n
Переключение между двумя узлами с использованием заданных элементов, которые присутствуют в этих узлах. Python-3.0 испол ⇐ Python
Программы на Python
1733366710
Anonymous
Я написал код, но думаю, что функция push не работает, поскольку когда я вызываю функцию отображения, в связанном списке не отображается ни один элемент. Расскажите, пожалуйста, как добавлять элементы в связанный список и объясните шаги. Я думаю, что Last_pointer считается локальной переменной и не сохраняет ее последнее значение. Если каждый раз я объявляю последний_указатель, он не будет добавляться к следующему узлу.
Выход:
Linked list before any swapping
key1 is not present in the list
key1 is not present in the list
key1 is not present in the list
____________________
# Swapping between two nodes present in linkedlist
class node:
def __init__(self,data):
self.data=data
self.next=None
class linkedlist:
def __init__(self):
self.head=None
def push(self,newdata):
newnode=node(newdata)
if(self.head==None):
last_pointer=self.head
last_pointer=newnode
last_pointer=last_pointer.next
else:
last_pointer.next=newnode
last_pointer=last_pointer.next
def swapnodes(self,key1,key2):
node1=self.head
node2=self.head
#if elements are similar
if(key1==key2):
print("keys are similar")
return
#find previous of element and element location in the list
while(node1):
if(node1==key1):
break
prevofnode1=node1
node1=node1.next
while(node2):
if(node2==key2):
break
prevofnode2=node2
node2=node2.next
#if elements are not present in the list
if(node1==None):
print("key1 is not present in the list")
return
if(node2==None):
print("key2 is not present in the list")
return
#if node present at beginning or at mid or at end
temp1=node2.next
temp2=node1.next
if(prevofnode1==None):
self.head=node2
node2.next=node1.next
prevofnode2=node1
node1.next=temp1
temp1=None
else:
prevofnode1=node2
node2.next=node1.next
prevofnode2=node1
node1.next=temp1
temp1=None
if(prevofnode2==None):
self.head=node1
node1.next=node2.next
prevofnode1=node2
node2.next=temp2
temp2=None
else:
prevofnode2=node1
node1.next=node2.next
prevofnode1=node2
node2.next=temp2
temp2=None
def display(self):
temp=self.head
while(temp):
print(temp.data)
temp=temp.next
llist=linkedlist()
llist.push(22)
llist.push(92)
llist.push(-20)
llist.push(2)
llist.push(23)
llist.push(102)
print("Linked list before any swapping")
llist.display()
llist.swapnodes(22,102)
llist.swapnodes(22,-20)
llist.swapnodes(22,13)
llist.display()
Подробнее здесь: [url]https://stackoverflow.com/questions/55685028/swapping-between-two-nodes-using-the-given-elements-which-are-present-in-these-n[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия