Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 2.27 KB | None | 0 0
  1. mutable struct List
  2.   data::Int64
  3.   next                    #структура самого списка
  4.   prev                    #mutable значит, что мы можем изменять поля структуры
  5. end
  6.  
  7. function create(data::Int64)
  8.   l1 = List(data, 0, 0)         #инициализация структуры, ввод в нее данных
  9.   l1
  10. end
  11.  
  12. function addData(l::List, data::Int64, place::Int64) # добавление элемента в список на нужную позицию, если позиция больше чем элементов, добавляется в конец
  13.   🙈 = l
  14.   if (place == 1)
  15.     l1 = create(data)   #добавление в начало
  16.     l1.next = l
  17.     return l1
  18.   end
  19.   while ((l.next != 0) && (place > 2))  # поиск места для вставки
  20.     l = l.next              
  21.     place = place - 1
  22.   end
  23.   l1 = create(data)
  24.   if (l.next != 0)
  25.     l1.next = l.next
  26.     l1.prev = l
  27.     l.next.prev = l1      #вставка в место между двумя
  28.     l.next = l1
  29.   else
  30.     l.next = l1
  31.     l1.prev = l          #вставка в конец
  32.   end
  33.   🙈
  34. end
  35.  
  36. function printList(l::List)
  37.   print("\n")
  38.   while (l != 0)
  39.     print(l.data,"\n")            #вывод списка
  40.     l = l.next
  41.   end
  42. end
  43.  
  44. function remove(l::List, place::Int64)  #удаление элемента с позиции
  45.   🙈 = l
  46.   if (place == 1)
  47.     l = l.next    #удаление первого
  48.     return l
  49.   end
  50.   while ((l.next != 0) && (place > 2))
  51.     l = l.next
  52.     place = place - 1       #поиск места
  53.   end
  54.  
  55.   if (l.next == 0)
  56.     return 🙈           #вернуть изначальный список если позиция больше кол-ва эл. в списке
  57.   end
  58.   l.next = l.next.next    #удалить элемент
  59.  
  60.   🙈
  61. end
  62.  
  63. function next(l::List)
  64.   return l.next             #перейти к следующему
  65. end
  66.  
  67. function prev(l::List)
  68.   return l.prev              #перейти к предыдущему
  69. end
  70.  
  71. l = create(1)
  72. l = addData(l,2,10)
  73. l = addData(l,3,10)
  74. l = addData(l,4,10)
  75. l = addData(l,5,3)
  76. printList(l)
  77. l = remove(l,5)
  78. printList(l)
  79.  
  80. print("\n",next(l.next).data)
  81.  
  82. print("\n",prev(l.next).data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement