summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20220501163136-список.org
diff options
context:
space:
mode:
Diffstat (limited to 'content/digarden/pages/20220501163136-список.org')
-rw-r--r--content/digarden/pages/20220501163136-список.org85
1 files changed, 0 insertions, 85 deletions
diff --git a/content/digarden/pages/20220501163136-список.org b/content/digarden/pages/20220501163136-список.org
deleted file mode 100644
index e69d759..0000000
--- a/content/digarden/pages/20220501163136-список.org
+++ /dev/null
@@ -1,85 +0,0 @@
-:PROPERTIES:
-:ID: 6e47e4b0-b09c-42c5-b559-9eaadb1bd9ec
-:END:
-#+title: Список
-
-** Односторонний список на PHP с методом своп
-#+begin_src php
-<?php
-
- class ConsType
- {
- function __construct($first, $second)
- {
- $this->first = $first;
- $this->second = $second;
- }
-
- function isCons($elem) {
- return $this->$elem instanceof ConsType;
- }
-
- function swap($i1, $i2)
- {
- $tail1 = null;
- $tail2 = $this;
- $elem1 = null;
- $elem2 = null;
-
- if ($i1 > $i2) [$i2, $i1] = [$i1, $i2];
-
- $imax = max($i1, $i2);
-
- for ($i = 0; $i < $imax; $i++)
- {
- if($i === $i1) {
- $elem1 = $tail2->getHead();
- $tail1 = $tail2;
- }
-
- $tail2 = $tail2->getTail();
- }
-
- $elem2 = $tail2->getHead();
-
- $tail1->first = $elem2;
- $tail2->first = $elem1;
- }
-
- function getTail() {
- return $this->second;
- }
-
- function getHead() {
- return $this->first;
- }
-
- function getConsElement($index) {
- "Функция возвращает пару по индексу";
- $tail = $this;
-
- for ($i=0; $i < $index; $i++)
- {
- $tail = $tail->getTail();
- }
-
- return $tail->first;
- }
- }
-
- # Список вида [1, 2, 3, 4]
- $test_list = new ConsType(1, new ConsType(2, new ConsType(3, 4)));
-
- var_dump($test_list);
-
- $test_list->swap(0, 2);
-
- var_dump($test_list);
-
- # Но есть баг, который мне уже лень исправлять
- # Не работает с последним элементом списка
-
- # Ну и похуй, я спать
-
-#+end_src
-