Vlad Jpeg
Vlad Jpeg
  • Видео 15
  • Просмотров 62 508
Как работает блокчейн? (на примере криптовалюты Биткоин)
В этом видео я расскажу о том, как работает блокчейн на примере криптовалюты Биткоин.
#crypto
#bitcoin
#blockchain
#technology
#money
#cryptocurrency
#cryptocurrencies
Просмотров: 248

Видео

Boot процесс в embedded системах на основе linux
Просмотров 1,2 тыс.Год назад
#linux #kernel #programming #bootsystem #embedded_systems #softwareengineer
Vizualization Of Bubble Sort
Просмотров 2032 года назад
"Bubble sort, sometimes referred to as sinking sort, is a simple sorting algorithm that repeatedly steps through the list, compares adjacent elements and swaps them if they are in the wrong order. The pass through the list is repeated until the list is sorted." (c) GeeksforGeeks In this video, I vizualize bubble sort algorithm. I used C and SFML lib. to create this video. www.geeksforgeeks.org/...
My Game In C++ using SFML lib
Просмотров 3262 года назад
This is my game "HINKELLER" written in C using SFML library. Source code can be found by link: github.com/Vladddd46/hinkaller_game
Сокеты в программировании. Пишем свой сервер и клиент.
Просмотров 22 тыс.2 года назад
Привет, в этом видео я расскажу о том, что такое сокеты в программировании. Также я реализую пример сервера и клиента на языке программирования Python, чтобы показать как работают сокеты на практике. 🌵🌵🌵🌵🌵🌵🌵🌵🌵🌵 Репозиторий с реализацией клиента и сервера на java, c, python: github.com/Vladddd46/servers_examples 🌵🌵🌵🌵🌵🌵🌵🌵🌵🌵 Полезные ссылки: www.geeksforgeeks.org/tcp-server-client-implementation-i...
Пишем telegram бота на Python. От идеи до реализации.
Просмотров 7563 года назад
В этом видео я расскажу о своей идеи бота в телеграм, а потом реализую эту идею на языке программирования Python. #телеграм_бот_на_пайтон #python #telegram_bot
Алгоритм Дейстры (+ реализация на си)
Просмотров 2,6 тыс.3 года назад
👀.Канал Юрия Лебедя: ruclips.net/channel/UCnxAgBhXddL7IbzT0Kpv3kQ 👀 🖥 Код из видео: github.com/Vladddd46/dijkstraAlgorithm 🖥 В этом видео я расскажу об алгоритме Дейкстры. Алгоритм Дейсктры это чудесный алгоритм, который позволяет найти кратчайшие пути от одной вершине графа, ко всем остальным. Также я показал реализацию этого алгоритма на языке программирования Си. #дейстра #алгоритмы #програм...
Бинарное дерево (+реализация на С)
Просмотров 6 тыс.3 года назад
🖥 Код из видео: github.com/Vladddd46/binaryTreeTutorial 🖥 Поддержать канал: 5375414121740418 🍖 В этом видео я расскажу о структуре данных бинарное дерево и как реализовать бинарное дерево на языке программирования С. #бинарное_дерево #binaryTree #binary_tree #бинарное_дерево_на_си #структуры_данных #data_structures
Ключевое слово static в С/C++
Просмотров 5633 года назад
В этом видео я расскажу о ключевом слове static в языках программирования C/C Поддержать канал: 5375414121740418 🍖 Сайт про схемотехнику - cxemotexnika.org/ #static #c #programming #staticKeyword #tutorial
Интерфейс SPI
Просмотров 2933 года назад
Поддержать канал: 5375414121740418 🍖 Интерфейс SPI и протокол передачи данных по SPI Что такое SPI и каким образом передаются данные с помощью SPI. SPI широко применяется в схемах на микроконтроллерах для коммуникации с периферией. ru.wikipedia.org/wiki/Serial_Peripheral_Interface #spi #что_такое_spi #SPI #интерфейс_SPI #протокол_SPI
[DHT11] Измерение температуры и влажности с помощью датчика DHT11 без сторонних библиотек.
Просмотров 3754 года назад
Поддержать канал: 5375414121740418 🍖 github.com/Vladddd46/Hardware/tree/master/t04/main - код из видео. Работа с датчиком DHT11 без использования сторонних библиотек. Разбор протокола коммуникации с DHT11 (также DHT22). Реализация протокола коммуникации с DHT11 на языке программирования Си. www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.pdf - dht11 datashe...
Шина I2C
Просмотров 3484 года назад
Поддержать канал: 5375414121740418 🍖 I²C (IIC), Inter-Integrated Circuit) - последовательная асимметричная шина для связи между интегральными схемами внутри электронных приборов. Использует две двунаправленные линии связи (SDA и SCL), применяется для соединения низкоскоростных периферийных компонентов с процессорами и микроконтроллерами (например, на материнских платах, во встраиваемых система...
Структуры данных: Стек. + реализация на Си
Просмотров 6 тыс.4 года назад
Поддержать канал: 5375414121740418 🍖 Что такое стек. Как реализовать стек на си. Сбалансированные скобочки (balanced parentheses). Стек (англ. stack - стопка; читается стэк) - абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in - first out, «последним пришёл - первым вышел»). Чаще всего принцип работы стека сравнивают со стопкой тарелок...
Связной Список (linked list). + реализация на Си.
Просмотров 17 тыс.4 года назад
Поддержать канал: 5375414121740418 🍖 Что такое Связной список? Как создать связной список? Как добавить элемент вперед связного списка? Как добавить элемент назад связного списка? Как вставить элемент в связной список? Как удалить элемент из связного списка? #динамические_структуры_данных #связной_список #односвязный_связной_список #linked_list #си #программирование #Индия #programming #data_s...
Алгоритм Флойда-Уоршелла (+ реализация на С)
Просмотров 4,1 тыс.4 года назад
Поддержать канал: 5375414121740418 🍖 Алгоритм Флойда-Уоршелла - динамический алгоритм для нахождения кратчайших расстояний между всеми вершинами взвешенного ориентированного графа. Разработан в 1962 году Робертом Флойдом и Стивеном Уоршеллом.

Комментарии

  • @dampling2601
    @dampling2601 Месяц назад

    У меня вопрос, а если у 2 процессов будут сокеты с одинаковыми портами. Будут ли конфликты с другими программами на пк, которые используют этот же порт

    • @depdoprogramming2750
      @depdoprogramming2750 Месяц назад

      ты не сможешь создать второй сокет с портом, который уже используется. При создании сокета выдаст ошибку: Address already in use

  • @Pchelik-84947
    @Pchelik-84947 Месяц назад

    Чел, большое тебе спасибо, видос очень годный. Я удивлён что у тебя такой маленький канал, объясняешь материал в видео очень понятно и быстро

  • @МойшеЮхман
    @МойшеЮхман Месяц назад

    А через интернет ?

    • @depdoprogramming2750
      @depdoprogramming2750 Месяц назад

      @@МойшеЮхман что ?

    • @МойшеЮхман
      @МойшеЮхман Месяц назад

      @@depdoprogramming2750 =)) Прости, не увидел, что половину комментария стёр. Я имел ввиду, есть ли гайд как написать клиент-сервер для передачи сообщений (типа "чат") через интернет \ локальную сеть между двумя компами?

    • @МойшеЮхман
      @МойшеЮхман Месяц назад

      @@depdoprogramming2750 ну или хотя-бы чрез тунгл.

    • @depdoprogramming2750
      @depdoprogramming2750 Месяц назад

      ​@@МойшеЮхман нужно настроить порт форвардинг на роутере. Глобальный интернет не видит твой комьютер, так как он находится в локальной сети. Вся коммуникация c шлобальной сетью идет через роутер, который распределяет трафик по локальной сети. Соответсвенно нужно зайти в настройки роутера (обычно перейти по адрессу 192.168.0.1) и там указать, что весь трафик с порта X нужно направлять на компьютер с адрессом Y и портом Z в локальной сети. PS. +нужно чтобы клиент подключался к айпи роутера, тобишь айпи, который видно в глобальной сети. обычно этот айпи динамический - провайдер выдает каждый раз новый айпи. Можно попросить у провайдера статический айпи, но обычно за это нужно доплачивать

    • @МойшеЮхман
      @МойшеЮхман Месяц назад

      @@depdoprogramming2750 спасибо!

  • @ЮрийКолесник-ь9ъ
    @ЮрийКолесник-ь9ъ 2 месяца назад

    Спасибо! Всё было интересно почему датчик не повесить на инпут порт, вроде при первом взгляде красиво и порты более "матёрые" остаются свободными. Как-то тема ни где, где описывалось как подкидывать датчик - эта не раскрывалась. Теперь понятно, что датчик надо "пнуть", до этого думал что он просто прёт данные без остановки.

  • @iraunikel
    @iraunikel 3 месяца назад

    Спасибо!

  • @igorseledtsov7345
    @igorseledtsov7345 4 месяца назад

    ну не пишут так на Си. это какойто Си++ стиль. для Си++ код ну более мене норм. Но на Си... За такое сразу увольнение с волчьим билетом.

    • @depdoprogramming2750
      @depdoprogramming2750 4 месяца назад

      та не страшно, на сво берут и с волчьими билетами и с петушиными. без работы не останусь😌

    • @igorseledtsov7345
      @igorseledtsov7345 4 месяца назад

      @@depdoprogramming2750 Да не не надо так мрасно Си++ сейчас в поочёте.. Деньги будете грести лопатой

  • @qotpiq1623
    @qotpiq1623 5 месяцев назад

    На видео это выглядит так легко. Большое спасибо <3

  • @TsvetaevAlex
    @TsvetaevAlex 5 месяцев назад

    Почему 127...., можно использовать localhost?

    • @depdoprogramming2750
      @depdoprogramming2750 5 месяцев назад

      это одно и то же. localhost=127.0.0.1 en.wikipedia.org/wiki/Localhost: "This resolution is normally configured by the following lines in the operating system's hosts file: 127.0.0.1 localhost"

  • @TsvetaevAlex
    @TsvetaevAlex 5 месяцев назад

    3:56 нарисованы 2 сокета на 1 порту, будет ошибка сокета, port busy. Можно поставить порты 5000 и 8000 или 5000 и 5001. На один порт 2 вешать нельщя

    • @depdoprogramming2750
      @depdoprogramming2750 5 месяцев назад

      да, я ошибся. нужно 2 разных порта. спасибо

    • @depdoprogramming2750
      @depdoprogramming2750 5 месяцев назад

      а хотя нет. Если рассматривать это в контексте передачи данных, то как раз таки 1 порт используется. В серверной программе создается сокет с портом и айпи, а на клиентской просто указывается сокет к которому мы хотим присоидениться. Тобишь при обмене данными между двумя программами будет задействован 1 порт. Возможно я плохо показал это в видео

  • @Efhjmnrfhh1
    @Efhjmnrfhh1 6 месяцев назад

    Спасибо! Помогло

  • @anatoliypustota
    @anatoliypustota 6 месяцев назад

    Большое спасибо, видео очень помогло

  • @DmitryDeim
    @DmitryDeim 7 месяцев назад

    Спасибо

  • @MrLeyt1125
    @MrLeyt1125 7 месяцев назад

    Такой вопрос, а зачем в функцию push_back передавать указатель на указатель **list, если можно передать просто *list , в чем выгода? И то и то 4 байта занимает. Если можно максимально просто, я тупой

    • @depdoprogramming2750
      @depdoprogramming2750 7 месяцев назад

      в случае push_back действительно выгод немного: есть 1 случай когда это оправдано => когда у нас пустой список *list = Null. Тобишь когда нам нужно создать связной список. Но если мы уверены что в пушбек всегда будет прилетать непустой список, то можно брать по указателю *list

    • @MrLeyt1125
      @MrLeyt1125 7 месяцев назад

      @@depdoprogramming2750 А можно в void функции push_back , которая у меня принимает *list, присвоить указателю list новый адрес? Если я пишу list = new_element; то он в push_back меняется нормально, а в мейне остается старым. Или обязательно делать возвращаемой функцию t_list* push_back() ?

  • @vladimirlrt2599
    @vladimirlrt2599 7 месяцев назад

    А как защитить (зашифровать) соединение от перехвата и подмены данных между клиентом и сервером

    • @depdoprogramming2750
      @depdoprogramming2750 7 месяцев назад

      шифрование это тема отдельного видео, но если на практике, то можно использовать готовые библиотеки. Например в python можно использовать библиотеку ssl

  • @MrLeyt1125
    @MrLeyt1125 7 месяцев назад

    Жаль автор не рассказал зачем вообще нужны эти списки, ведь по сути это тот же обычный массив. Чем они лучше массива? В каких случаях используются и т.д.

    • @depdoprogramming2750
      @depdoprogramming2750 7 месяцев назад

      В массиве элементы лежат последовательно в памяти, а в списке каждая нода отдельно и имеет указатель на следующую ноду, которая лежит где то в памяти

    • @depdoprogramming2750
      @depdoprogramming2750 7 месяцев назад

      Соответсвенно вставка элемента в произвольное место в списке будет эффективней чем в массиве. В списке будет просто переорределение указателей List *tmp = ptr.next ptr.next = newNode newNode.next = tmp

    • @depdoprogramming2750
      @depdoprogramming2750 7 месяцев назад

      В свою очередь в массиве нужно будет сместить все элементы справа от выбранного индекса вставки вправо и потом уже вставить элемент по индексу

    • @depdoprogramming2750
      @depdoprogramming2750 7 месяцев назад

      Также если выделенная память под массив закончиться, то нужно перевыделять новую память большего размера и переносить в нее массив. В списках каждая нода выделяется отдельно

    • @depdoprogramming2750
      @depdoprogramming2750 7 месяцев назад

      В то же время добавление элементов в конец массива будет быстрее так как это *arr+index (адреса первого элемента массива в памяти + индекс по которому хотим поставить элемент ) В случае со списком нужно выделять новый участок памяти под ноду, что довольно затратно

  • @MisterM-q8h
    @MisterM-q8h 8 месяцев назад

    Дуже корисне відео🤩 Лайк і підписка💯

  • @estrella7696
    @estrella7696 9 месяцев назад

    Спасибо большое!

  • @mariavladlife4429
    @mariavladlife4429 10 месяцев назад

    спасибо! очень понятно

  • @SerjCrimea
    @SerjCrimea 10 месяцев назад

    Это прикольно. Но я пока не вижу идеи, данных, при которой нужно такое хранение данных :) Ибо в основном есть данные, которые нужно хранить не меняя последовательность. Или это высшая математика? И ..... даже варианта нет для чего бинарное дерево?

    • @depdoprogramming2750
      @depdoprogramming2750 10 месяцев назад

      Например в с++ контейнер std::map реализован с помощью бинарного дерева. + бинарного дерева в том, что скорость поиска элемента в нем O(logN), что достаточно быстро. Если элементы хранить в обычном списке, то скорость поиска элементов там - O(n). Короче, бинарное дерево еффективно для поиска элементов в нем.

    • @depdoprogramming2750
      @depdoprogramming2750 10 месяцев назад

      Ситуация в которой используется бинарное дерево: когда ты добавляешь элементы нечасто, но обращаешся к элементам бинарного дерева часто. Например ты создал какую-то условную базу даных в динамиеской памяти и потом постоянно обращаешся к ее элементам. В таком случае бинарное дерево будет эффективным. куда более еффективным чем обычный список

    • @depdoprogramming2750
      @depdoprogramming2750 10 месяцев назад

      + это же структура даних и она уже скорее всего реализована во многих языках программирования. навряд ли тебе прийдется создавать бинарное дерево для каких то практических задач.

    • @SerjCrimea
      @SerjCrimea 10 месяцев назад

      @@depdoprogramming2750 В примере с цифрами до меня это не донеслось ;) Таким образом данные делятся для поиска, хотя бы пополам. Хотя я до конца еще не понял схему ;) но интересно.

  • @МаксПереу
    @МаксПереу 11 месяцев назад

    Товарищи коллеги, пожалуйста требуется совет или подсказка. Хочу сделать десктоп приложение(принципиально) предполагается серверная часть, сервер делать грубо говоря как показано в видео просто по tcp протоколу? А то друг с потока (я учусь в универе) сказал что нужно еще http протокол т. К. он на прикладном уровне, а tcp на транспортном. Изначально хотел сделать tcp сервер с обменом данными с клиентом без http, а теперь думаю такое возможно и так делают ли вообще. Проект я делаю для диплома

    • @depdoprogramming2750
      @depdoprogramming2750 11 месяцев назад

      Протокол это просто оговоренный формат передачи сообщений

    • @depdoprogramming2750
      @depdoprogramming2750 11 месяцев назад

      Http можно не реализовывать.

  • @ХанХалатян
    @ХанХалатян 11 месяцев назад

    Прикол с индусом 10/10

  • @McGewen
    @McGewen Год назад

    а сам написати не міг*? шо копіюеєш в інших? програміст мамкин

  • @GROSSMANN_PARTNER
    @GROSSMANN_PARTNER Год назад

    Чувак спасибо я очень долго искал подобное видео я мог выводить дерево вводить данные в дерево но обходить так не научился , но благодаря тебе теперь могу

  • @baron2272
    @baron2272 Год назад

    Расскажите, как сделать обмен данными через Apache и MySQL

  • @teamssquadts7833
    @teamssquadts7833 Год назад

    Не смотрите, 25 минут впустую.(ну ладно, поржал)

  • @andreyzykov1059
    @andreyzykov1059 Год назад

    это видео с индийского канала перевели? ахаха

  • @sin_ner1492
    @sin_ner1492 Год назад

    Кто нибудь считал, сколько раз он сказал слово сокет?

  • @cheremushk
    @cheremushk Год назад

    Дядь, всегда ли клиент должен закрывать подключение к серверу, после отправки и приёма сообщения от сервера? Что, если это чат?

    • @evan_kirk
      @evan_kirk 9 месяцев назад

      Насколько я знаю, сокет на то и сокет, что позволяет сделать беспрерывное подключение.

    • @depdoprogramming2750
      @depdoprogramming2750 8 месяцев назад

      @@evan_kirk да, сокет можно держать открытым и слать туда данные постоянно. Но надо учитывать что у ОС есть ограничения на количество открытых сокетов, поэтому нельзя иметь миллион открытых сокетов одновременно. есть еще системный вызов select, который может отслеживать активность на сокете. Тоесть если на сокет будут приходить какие то данные, то селект будут нотифицировать об этом

    • @evan_kirk
      @evan_kirk 8 месяцев назад

      @@depdoprogramming2750 спасибо)

  • @ИраДаф
    @ИраДаф Год назад

    Охренеть как четко ты смог объяснить блин да даже я понял СПАСИБО ЧУВАК

  • @ИраДаф
    @ИраДаф Год назад

    заебись каминчик я кайфанул

  • @каникудылето
    @каникудылето Год назад

    все отлично без води без лишнего

  • @R4isiN77
    @R4isiN77 Год назад

    А можно исходник программы в видео?

  • @Kamingos
    @Kamingos Год назад

    классное видео

  • @dacyn8417
    @dacyn8417 Год назад

    Я написал ip сервара в клиенте и в сервер, запускаю пишу, и он просто закрывается.

    • @depdoprogramming2750
      @depdoprogramming2750 Год назад

      Скорее всего что то неправильно сделали

    • @dacyn8417
      @dacyn8417 Год назад

      ​@@depdoprogramming2750 говорит то что сервер (компьютер) отклонил подключение

    • @depdoprogramming2750
      @depdoprogramming2750 Год назад

      @@dacyn8417 ну это нужно смотреть. Попробуйте взять код по ссылке в описании видео

    • @dacyn8417
      @dacyn8417 Год назад

      @@depdoprogramming2750 хорошо, спасибо

    • @slavik15971597
      @slavik15971597 Год назад

      Сервер надо запускать с локальным адресом. А вот клиенту надо обращаться к серверу через внешний адрес.

  • @Джорноджованна-у4ш

    а как сделать русский язык?

  • @ИмяФам-г2о
    @ИмяФам-г2о Год назад

    Чётко. Без лишнего )

  • @mi6ka883
    @mi6ka883 Год назад

    для скачивания в самом лучшем качестве , вместо метода youtube.streams.first() можно использовать метод youtube.streams.get_highest_resolution() И спасибо вам за видео

  • @Владимир-ю3у4и
    @Владимир-ю3у4и Год назад

    Парень , моё почтенье!

  • @zagu4196
    @zagu4196 2 года назад

    бинарное дерево поиска !

  • @АндрейАлександрович-ы6я

    Большое спасибо! А можно видео с созданием дочернего процесса и созданием соединения в нем? Оно вроде все просто, но не просто

  • @ВиталийПо-ю2д
    @ВиталийПо-ю2д 2 года назад

    если от идеи начать то откуда у меня Python на компе? полный провал на первой команде сразу.

  • @helloworld-fv8kx
    @helloworld-fv8kx 2 года назад

    а как сделать сервер на удаленном компьютере(например на aws) а клиент на своем компьютере?

    • @depdoprogramming2750
      @depdoprogramming2750 2 года назад

      я с aws работал только 1 раз, но на сколько я помню они просто предоставляют удаленный компьютер если коротко. точно также, как я показал в конце видео. я там запускаю сервер на одном компьютере, а клиент на другом. Я использую локальный ip-адресс компьютера, но у компьютера есть еще и глобальный айпи адресс(он кстати может быть динамическим(меняется каждый раз при подключении) либо статическим(закреплен за вами интернет провайдером. обычно за такое нужно доплачивать)). Так вот сделать нужно все также, только вместо локального айпи использовать глобальный. Нужно узнать глобальный айпи адресс удаленного компьютера - запустить сервер с этим айпи адрессом и потом поключаться с к этому айпи адрессу с клиента

    • @helloworld-fv8kx
      @helloworld-fv8kx 2 года назад

      @@depdoprogramming2750 ок, нужно будет попробовать

    • @helloworld-fv8kx
      @helloworld-fv8kx 2 года назад

      ​@@depdoprogramming2750 получилось!!! все работает. Бооожеее, 4 дня у меня на это ушло, чтобы понять как это все работает. Сделал я на aws, добавил http в secure groupe ,открыл порт, запустил сервер с++, запустил клиент на своей машине и все заработало !!!! юхууу

  • @ДенисЧеб-м6ф
    @ДенисЧеб-м6ф 2 года назад

    немного не понимаю, почему когда вы вызываете функцию push, вы передаете указатель на указатель (**), а когда обходите дерево в ширину передаете просто указатель(* )?

    • @depdoprogramming2750
      @depdoprogramming2750 2 года назад

      Когда мы передаем в функцию аргумент, значение этого аргумента копируется. Тобишь в функцию передается не оригинальный аргумент, а его копия: void incrementA(int a) {a++;} => функция incrementA будет инкрементировать переменную а локально: int a = 1; incrementA(a); print(a) => а по прежнему = 1 Поэтому для того, чтобы изменять значение переменной а вне функции incrementA, в функцию incrementA нужно передавать указатель на a: incrementA(int *a) {*a += 1}. В таком случае: int a = 1; incrementA(&a); print(a); => теперь a=2 ----- Из этого следует: Когда мы передаем в функцию указатель - берется не его оригинальное значение, а его копия. Тобишь: int a = 1; int ptrA = &a; => пускай ptrA имеет условный адресс 0x01 incrementA(&ptrA); => сюда передается копия указателя ptrA. тобишь у указателя в функции incrementA будет уже другой адресc (например 0x01). Несмотря на это и ptrA(0x01) и его копия (0x02) будут указывать на один и тот же обьект в памяти: int ptrA = &a; print(a); // выдаст какой то адресс (например 0x01) void incrementA(int &a) { print(a); // тут уже будет другой адресс (например 0x02) } Несмотря на это и ptrA(0х01) и его копия(0х02) будут указывать на один и тот же адресс в памяти(например 0х03) Вообщем нужно понимать разницу между адрессом самого указателя и адрессом на который указывает укащатель. ----- А теперь: 1. в функции push(BinaryTree **node) нам нужно изменить адресс(именно адресс на который указывает tree, а не значение) внешнего указателя, а не его копии, которая передается в функцию push. Если мы передадим просто указатель BinaryTree *tree = тут_созданное_дерево; // пускай у адресс tree = 0x01, который указывает на обьект Node с адрессом 0х100 push(tree) { // push(BinaryTree *node) print(node) // в переменную node передалась копия указателя tree(0x01) и теперь у этой копии другой адресс (0х02) node = Node с адрессом 0x101 // таким образом мы говорим, указатель node(0x02) = Node(0x101) // Однако node(0x02) это всего лишь копия. Оригинальный указатель tree(0x01) не изменится в таком случае и будет по прежнему указывать на Node(0x100) } // !!!!! нам нужно изменить сам адресс, на который указывает tree, а не значение по адрессу tree. Именно поэтому **tree 2. В функциях обхода дерева нам не нужно изменять значения, которые хранит указатель, поэтому можно обойтись просто копией.

    • @ДенисЧеб-м6ф
      @ДенисЧеб-м6ф 2 года назад

      @@depdoprogramming2750 Спасибо Вам за ответ! Теперь все понятно

  • @nazarsincopa880
    @nazarsincopa880 2 года назад

    Ты мэтр!

  • @nooobas6157
    @nooobas6157 2 года назад

    Здравствуйте, подскажите пожалуйста, а как реализовать добавление элементов по возрастанию?

    • @depdoprogramming2750
      @depdoprogramming2750 2 года назад

      создать ноду(узел), идти циклом по связному списку до тех пор, пока не найдется нужное место, вставить элемент в нужное место

    • @nooobas6157
      @nooobas6157 2 года назад

      @@depdoprogramming2750 Спасибо)

  • @elizastro3018
    @elizastro3018 2 года назад

    Очень круто, спасибо!

  • @michael007miksa
    @michael007miksa 2 года назад

    Спасибо тебе не известный человек, занимаюсь программированием уже несколько лет, наконец-то понял как работают сокеты, продолжай

  • @arthurrebar6693
    @arthurrebar6693 2 года назад

    а как реализовать удаление с конца,что-то плохо у меня выходит

    • @depdoprogramming2750
      @depdoprogramming2750 2 года назад

      1. Нужно проверить два случая, когда список пустой и когда список состоит из 1 элементе if list == NULL { print("spisok pustoy") } else if list->next = NULL{ free(list) list = NULL }

    • @depdoprogramming2750
      @depdoprogramming2750 2 года назад

      2. Нужно циклом дойти до предпоследнего элемента и удалить последний. list_t *tmp = list while(tmp->next->next != NULL) { tmp=tmp->next } free(tmp->next) tmp->next = NULL

  • @ВасилийСерюгин
    @ВасилийСерюгин 2 года назад

    Удивительно мало просмотров и комментов. Спасибо за видео!

  • @mubiys9177
    @mubiys9177 2 года назад

    Спасибо большое, хорошо объяснил и показал Думала, на лекциях голову сломаю, пока разберусь, а тут за 15 минут всё ясно стало