Implement A Binary Heap - An Efficient Implementation of The Priority Queue ADT (Abstract Data Type)

Поділитися
Вставка
  • Опубліковано 30 січ 2019
  • Free 5-Day Mini-Course: backtobackswe.com
    Try Our Full Platform: backtobackswe.com/pricing
    📹 Intuitive Video Explanations
    🏃 Run Code As You Learn
    💾 Save Progress
    ❓New Unseen Questions
    🔎 Get All Solutions
    Question: Implement a binary heap (a complete binary tree which satisfies the heap ordering property). It can be either a min or a max heap.
    Video On Heap Sort: • Investigating Heap Sor...
    Priority Queue ADT (Abstract Data Type)
    The ADT's Fundamental API
    isEmpty()
    insertWithPriority()
    pullHighestPriorityElement()
    peek() (which is basically findMax() or findMin()) is O(1) in time complexity and this is crucial.
    A heap is one maximally efficient implementation of a priority queue.
    We can have:
    -) a min heap: min element can be peeked in constant time.
    -) or a max heap: max element can be peeked in constant time.
    The name of the heap indicates what we can peek in O(1) time.
    It does not matter how we implement this as long as we support the expected behaviors of the ADT thus giving our caller what they want from our heap data structure.
    A binary heap is a complete binary tree with a total ordering property hence making it a heap with O(1) peek time to the min or max element.
    We can implement the heap with actual nodes or we can just use an array and use arithmetic to know who is a parent or left or right child of a specific index.
    Insertion into a binary heap:
    We insert the item to the "end" of the complete binary tree (bottom right of the tree).
    We "bubble up" the item to restore the heap. We keep bubbling up while there is a parent to compare against and that parent is greater than (in the case of a min heap) or less than (in the case of a max heap) the item. In those cases, the item we are bubbling up dominates its parent.
    Removal from a binary heap:
    We give the caller the item at the top of the heap and place the item at the "end" of the heap at the very "top".
    We then "bubble the item down" to restore the heap property.
    Min Heap: We keep swapping the value with the smallest child if the smallest child is less than the value we are bubbling down.
    Max Heap: We keep swapping the value with the largest child if the largest child is greater than the value we are bubbling down.
    In this manner, we restore the heap ordering property.
    The critical thing is that we can have O(1) knowledge of the min or max of a set of data, whenever you see a problem dealing with sizes think of a min or max heap.
    ++++++++++++++++++++++++++++++++++++++++++++++++++
    HackerRank: / @hackerrankofficial
    Tuschar Roy: / tusharroy2525
    GeeksForGeeks: / @geeksforgeeksvideos
    Jarvis Johnson: / vsympathyv
    Success In Tech: / @successintech
  • Наука та технологія

КОМЕНТАРІ • 329

  • @BackToBackSWE
    @BackToBackSWE  5 років тому +65

    Table of Contents:
    Plugging The Channel 0:00 - 0:36
    The Problem Introduction 0:36 - 1:13
    A Heap Is Not An ADT 1:13 - 1:43
    The ADT Priority Queue 1:43 - 3:39
    The Min and Max Heap 3:39 - 5:50
    Insertions & Removals On A Min Heap 5:50 - 8:57
    Our First Removal 8:57 - 11:16
    Continue Insertions 11:16 - 13:20
    Our Second Removal 13:20 - 15:21
    Our Third Removal 15:21 - 15:54
    Continue Insertions 15:54 - 17:47
    Notice Our Heaps Contents 17:47 - 18:32
    Time Complexity For Insertion & Removal 18:32 - 19:35
    Wrap Up 19:35 - 20:00
    The code is in the description fully commented for teaching purposes.

    • @saffaura
      @saffaura 4 роки тому +16

      I don't see the code in the description or a link to it. Am I blind or is it gone?

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому +2

      The repository is deprecated - we only maintain backtobackswe.com now

    • @jonfun449
      @jonfun449 4 роки тому +8

      @@BackToBackSWE So it's not free anymore?

    • @goblin1390
      @goblin1390 3 роки тому

      where can i find c++ code... and I don't find any code in description

    • @charan_75
      @charan_75 3 роки тому +8

      @@saffaura public class Solution {
      /*
      A min heap implementation
      Array Form: [ 5, 7, 6, 10, 15, 17, 12 ]
      Complete Binary Tree Form:
      5
      / \
      7 6
      / \ / \
      10 15 17 12
      Mappings:
      Parent -> (childIndex - 1) / 2
      Left Child -> 2 * parentIndex + 1
      Right Child -> 2 * parentIndex + 2
      */
      private static class MinHeap {
      private int capacity = 5;
      private int heap[];
      private int size;
      public MinHeap() {
      heap = new int[capacity];
      }
      public boolean isEmpty() {
      return size == 0;
      }
      public int peek() {
      if (isEmpty()) {
      throw new NoSuchElementException("Heap is empty.");
      }
      return heap[0];
      }
      public int remove() {
      if (isEmpty()) {
      throw new NoSuchElementException("Heap is empty.");
      }
      /*
      -> Grab the min item. It is at index 0.
      -> Move the last item in the heap to the "top" of the
      heap at index 0.
      -> Reduce size.
      */
      int minItem = heap[0];
      heap[0] = heap[size - 1];
      size--;
      /*
      Restore the heap since it is very likely messed up now
      by bubbling down the element we swapped up to index 0
      */
      heapifyDown();
      return minItem;
      }
      public void add(int itemToAdd) {
      ensureExtraCapacity();
      /*
      -> Place the item at the bottom, far right, of the
      conceptual binary heap structure
      -> Increment size
      */
      heap[size] = itemToAdd;
      size++;
      /*
      Restore the heap since it is very likely messed up now
      by bubbling up the element we just put in the last empty
      position of the conceptual complete binary tree
      */
      siftUp();
      }
      /***********************************
      Heap restoration helpers
      ***********************************/
      private void heapifyDown() {
      /*
      We will bubble down the item just swapped to the "top" of the heap
      after a removal operation to restore the heap
      */
      int index = 0;
      /*
      Since a binary heap is a complete binary tree, if we have no left child
      then we have no right child. So we continue to bubble down as long as
      there is a left child.
      A non-existent left child immediately tells us that a right child does
      not exist.
      */
      while (hasLeftChild(index)) {
      /*
      By default assume that left child is smaller. If a right
      child exists see if it can overtake the left child by
      being smaller
      */
      int smallerChildIndex = getLeftChildIndex(index);
      if (hasRightChild(index) && rightChild(index) < leftChild(index)) {
      smallerChildIndex = getRightChildIndex(index);
      }
      /*
      If the item we are sitting on is < the smaller child then
      nothing needs to happen & sifting down is finished.
      But if the smaller child is smaller than the node we are
      holding, we should swap and continue sifting down.
      */
      if (heap[index] < heap[smallerChildIndex]) {
      break;
      } else {
      swap(index, smallerChildIndex);
      }
      // Move to the node we just swapped down
      index = smallerChildIndex;
      }
      }
      // Bubble up the item we inserted at the "end" of the heap
      private void siftUp() {
      /*
      We will bubble up the item just inserted into to the "bottom"
      of the heap after an insert operation. It will be at the last index
      so index 'size' - 1
      */
      int index = size - 1;
      /*
      While the item has a parent and the item beats its parent in
      smallness, bubble this item up.
      */
      while (hasParent(index) && heap[index] < parent(index)) {
      swap(getParentIndex(index), index);
      index = getParentIndex(index);
      }
      }
      /************************************************
      Helpers to access our array easily, perform
      rudimentary operations, and manipulate capacity
      ************************************************/
      private void swap(int indexOne, int indexTwo) {
      int temp = heap[indexOne];
      heap[indexOne] = heap[indexTwo];
      heap[indexTwo] = temp;
      }
      // If heap is full then double capacity
      private void ensureExtraCapacity() {
      if (size == capacity) {
      heap = Arrays.copyOf(heap, capacity * 2);
      capacity *= 2;
      }
      }
      private int getLeftChildIndex(int parentIndex) {
      return 2 * parentIndex + 1;
      }
      private int getRightChildIndex(int parentIndex) {
      return 2 * parentIndex + 2;
      }
      private int getParentIndex(int childIndex) {
      return (childIndex - 1) / 2;
      }
      private boolean hasLeftChild(int index) {
      return getLeftChildIndex(index) < size;
      }
      private boolean hasRightChild(int index) {
      return getRightChildIndex(index) < size;
      }
      private boolean hasParent(int index) {
      return index != 0 && getParentIndex(index) >= 0;
      }
      private int leftChild(int index) {
      return heap[getLeftChildIndex(index)];
      }
      private int rightChild(int index) {
      return heap[getRightChildIndex(index)];
      }
      private int parent(int index) {
      return heap[getParentIndex(index)];
      }
      }
      }

  • @superparth1995
    @superparth1995 4 роки тому +197

    This man explains better than my prof who has a PhD in Comp Sci lmao One of the best channels to understand Data Structures!

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому +8

      hey

    • @dewman7477
      @dewman7477 3 роки тому +1

      @@BackToBackSWE hey have one question. What would be time complexity (both iterative and recursive) for verifying/building a general K-ary max heap (not just binary but for ternary and so forth)?

    • @arnabbanik6403
      @arnabbanik6403 2 роки тому

      If not the best

    • @howardlam6181
      @howardlam6181 Рік тому

      well, you do realise you are visiting this topic not the first time?

    • @dennistang5935
      @dennistang5935 7 місяців тому

      Well getting a PhD doesn't really correlate with how well you can explain a simple-data structure

  • @brandonhui1298
    @brandonhui1298 5 років тому +92

    i really appreciate the fact you edit out the insane amount of erasing and rewriting youre doing in all of these. each of these videos must take so long to record and edit O_O thanks mate

    • @BackToBackSWE
      @BackToBackSWE  5 років тому +25

      hahahahhaha, thanks for noticing the details. Yeah each video takes from 4-6 hours from shooting to editing.

  • @panterra5662
    @panterra5662 3 роки тому +11

    This channel is by far the best at breaking down and explaining DSA concepts that I've ever seen (including university). Thanks for your awesome work!

  • @mariasandru7
    @mariasandru7 4 роки тому +37

    I admire your dedication and treasure it a lot! It is an honour to have someone as skilled as you taking the time to explain these concepts for beginners like us!!!

  • @VinothiniAnabayan
    @VinothiniAnabayan 3 роки тому +20

    The way he explains, just goes into the mind..

  • @FernandoRodriguez-et7qj
    @FernandoRodriguez-et7qj Рік тому +1

    you are an increadible human being for puttin this content out there.

  • @sacheras3
    @sacheras3 Рік тому +1

    One of the best explanations I've seen for this topic, is complete, clear, with graphics, and examples. Thank you so much.

  • @minerbytrade982
    @minerbytrade982 3 роки тому +10

    Very helpful! I feel like I’m in an actual lecture, but with an awesome instructor. Thanks for the video!

  • @sim77778777
    @sim77778777 5 років тому +27

    Thank you for the awesome explanation. Looking forward to more of your tutorial videos

  • @lavanyam3224
    @lavanyam3224 2 місяці тому

    Omg, this video was posted 5 years back and is still the best video I've ever seen. Your explanation makes it so simple! Glad I found your channel.. it's a gem 💎❤

  • @fablesfables
    @fablesfables 5 років тому +6

    this channel is the reason i'll pass my data structures class )': thanks so much man please keep making these videos!! you really explain stuff so in-depth.

  • @ScottShaulis
    @ScottShaulis 10 місяців тому

    Absolutely love the explanations of the fundamental building blocks of the more complex stuff! Much gratitude.

  • @DantCJT
    @DantCJT Рік тому

    literally you explain better than any teacher I've ever had, keep it up, greetings from Colombia

  • @ivanzalomin7740
    @ivanzalomin7740 2 роки тому

    The best explanation of heap I could found. Short and clear

  • @tannerbarcelos6880
    @tannerbarcelos6880 4 роки тому +3

    This is literally a legendary video lol. I am learning BST and Heap in my data strucutres class and i understand majority of the BST stuff, but the heap was like, easy to understand but weird as hell to understand that its no longer an ADT etc. You did a great job explaining all this.

  • @user-bz2wg8es7v
    @user-bz2wg8es7v Рік тому

    Love your enthusiasm in this tutorial!

  • @guardianoftheledge4966
    @guardianoftheledge4966 3 роки тому +2

    You are a legend. This channel is awesome for quick review and for first attempts. Thanks for all the forethought and effort put into your videos.

  • @maripaz5650
    @maripaz5650 3 роки тому +1

    legit one of the best channels on youtube. these are beautiful and my go-to interview studying (and my last-minute nerves studying). thank you for the wonderful content!

  • @SomeOne-rx2xw
    @SomeOne-rx2xw 3 роки тому

    Man you don't know how much of a help you are for us! You always help me through, thank you so much you are the best.

  • @GraniLP
    @GraniLP 3 роки тому

    Dude I swear you are the one making me pass my algo lecture! Your vids are helping me so much with every exercise

  • @masudahmed5879
    @masudahmed5879 4 роки тому +3

    Absolutely amazing and thorough. Beautiful breakdown. Best explanation I have seen yet and could not have been better. Will check out your products and really hope your full courses and career services come in time for upcoming graduation and recruitment!

  • @markrosenthal1129
    @markrosenthal1129 7 місяців тому

    2 minutes into the video, this guy answered questions I had to ask my professors for weeks to understand. You might not understand everything he is saying, but this is the same stuff that I'm being taught at a private, super expensive, well ranked engineering school. Thanks for the help!

    • @BackToBackSWE
      @BackToBackSWE  6 місяців тому

      Happy Holidays 🎉 Thank you for your kind words, MarkRosenthal! We'd love to offer you a 40% Off our exclusive lifetime membership just use the code CHEER40 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=CHEER40

  • @allan_cm
    @allan_cm 3 роки тому

    OMG you explain so clear! Thanks!

  • @nenotdope6913
    @nenotdope6913 Рік тому

    quality videos bro, I not only learn but I enjoy watching them too

  • @djfedor
    @djfedor 5 років тому +5

    Great video, as always! Nice job!

  • @eve7947
    @eve7947 5 років тому +5

    Thank you so much for your videos that make algorithm so much easier to understand! Looking forward to more of them:)

  • @Gzzzzzz111
    @Gzzzzzz111 3 роки тому +1

    I like how he asks the question 'Do you see xxxx ?'. It just gives me a feeling that I'm actually sitting in front of him, and it makes me more engaged into the video.

  • @joandaa
    @joandaa 4 роки тому +1

    Just found your channel, and smashed that subscribe button. Thank you so much for your content! It helps me and my GPA a lot.
    Also, I can see your channel becoming the world's biggest resource of SWE in the future. Will support you through it all.

  • @supastar25
    @supastar25 4 роки тому +1

    Best explanation of heaps I've seen on here..thanks dude..so easy to follow.

  • @deli5777
    @deli5777 2 роки тому +1

    First video of yours that I've seen. Excited to check out more. Thanks for the info!

    • @BackToBackSWE
      @BackToBackSWE  2 роки тому

      Glad to hear that! Subscribe to our DSA course for some amazing content with a flat 30% discount b2bswe.co/3HhvIlV

  • @adrijasamanta7949
    @adrijasamanta7949 2 роки тому

    This is "THE BEST CHANNEL" for SWE..... Love it

  • @cobrafriends
    @cobrafriends 4 роки тому +20

    nobody:
    ben: "we're missing one child, that's fine"

  • @SR-we1vl
    @SR-we1vl 4 роки тому +1

    You deserve a medal for all the work you do! and the best part you always reply to my comments! Keep enlightening us with your videos!😊😊

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому

      Thanks and no I don't, I had/have a mission and it has nothing to do with me. And yeah, I reply to everyone. And sure.

  • @RubyLee-pc1lj
    @RubyLee-pc1lj 2 місяці тому

    This video explains the remove so well.

  • @daniilsitdikov8561
    @daniilsitdikov8561 3 роки тому

    The best explanation ever!

  • @pandaonsteroids5154
    @pandaonsteroids5154 Рік тому

    Thanks. Short and sweet review for my exam.

  • @inikotoran
    @inikotoran 2 роки тому

    Thank you for the explanation, it’s easy to understand and very helpful!

  • @OK-cy2mc
    @OK-cy2mc 3 роки тому +1

    Your videos are by far the best. Keep up the good work!

  • @vusalnebiyev3984
    @vusalnebiyev3984 2 роки тому

    Thanks for the awesome explanation.

  • @tombrady7390
    @tombrady7390 4 роки тому +4

    youtube takes time but is rewarding, keep the tempo going

  • @EduardoMatus
    @EduardoMatus 3 роки тому

    Amazing explanation!

  • @udithkumarv734
    @udithkumarv734 3 роки тому +3

    Helped me implement this in minutes thanks to the video.

  • @rachelgilyard3430
    @rachelgilyard3430 3 роки тому

    Glad I found your channel

  • @lwinchohtun9338
    @lwinchohtun9338 2 роки тому

    You are so amazing... I think I'm best lucky for choosing this video tutorial among many others....

  • @batu1
    @batu1 3 роки тому +1

    Amazing lecture, appreciate your efforts!!!

  • @karimkohel3240
    @karimkohel3240 4 роки тому +1

    DUDE you are killin it, thank you.

  • @sheetalborar6813
    @sheetalborar6813 2 роки тому

    you are an excellent teacher! thankyou!!

  • @jacobmoore8734
    @jacobmoore8734 4 роки тому +2

    This man smokes tricky concepts like it aint no thing! @B2BSWE, I like how you explain the concepts and don't just immediately jump into optimized code. I've seen videos like that before, where I guess the goal is to memorize a process and I walk away feeling unsure about what I "learned".

  • @kapuluru5964
    @kapuluru5964 3 роки тому

    thnq so much man. it helped me a lot.Excellent explanation

  • @Black-xy4pj
    @Black-xy4pj Рік тому

    I have to applaud you for this! Thank you, thank you! I love how u put it in Layman's term

  • @zoran132
    @zoran132 4 роки тому

    one hell of a good explanation, keep doing what you're doing man, appreciate it

  • @prajyotp4981
    @prajyotp4981 3 роки тому

    Simplicity is quality of this channel.

  • @thihathantsin1934
    @thihathantsin1934 4 роки тому +1

    Hello Sir!!!
    I am from Myanmar student who is learning Software Engineering.
    Your videos are so effective for me and you can explain very clearly.
    Thanks for sharing your knowledge.

  • @adithyaharish3530
    @adithyaharish3530 3 роки тому +1

    one of the best ds channels..great work

  • @gavravdhongadi9824
    @gavravdhongadi9824 4 роки тому +1

    Hands down to THE BEST CHANNEL

  • @Aditigoyal1997
    @Aditigoyal1997 3 роки тому +1

    Thank you for this amazing explanation.

  • @join2nitin
    @join2nitin 3 роки тому +1

    You are great teacher, what a clear explanation of each topic. Please post more learning videos of popular algorithms

  • @adrienjean4196
    @adrienjean4196 3 роки тому +2

    Man this vid is so rad! This is the best explanation I've seen yet. I've always wanted to implement compression with huffman coding and now this is is very clear. I never bothered to learn what log n complexity meant (altho I'm supposed to be a a dev) but now this is obvious. Like if you double the size of the elements in the binary tree you only have to go one step further to bubble up or down one element by comparing and swaping with parents/children hence it's log since it depends of the exponent value. Thank's.

  • @rosameliacarioni1022
    @rosameliacarioni1022 3 роки тому

    Thanks a lot for this !!

  • @socaexpress
    @socaexpress 4 роки тому +1

    Excellent video buddy really solidified the concept of a binary heap for me

  • @willyistheone
    @willyistheone Рік тому

    very detailed explaination

  • @prajakta_patil
    @prajakta_patil 4 роки тому +2

    Best Explanation on Internet :)

  • @coztigers98
    @coztigers98 4 роки тому

    I had an onsite question that involved heaps... I didn't get the offer, and went on a berserk mode to understand where I went wrong. Your explanation is the clearest one I've seen. Thank you.

  • @mmaranta785
    @mmaranta785 3 роки тому

    You’re an awesome teacher!

  • @shijiama4946
    @shijiama4946 4 роки тому +1

    helps a lot when im preparing for final thx!

  • @absurdname5492
    @absurdname5492 3 роки тому

    you just saved my semester

  • @yolokazinogantsho8111
    @yolokazinogantsho8111 2 роки тому

    Thank you!!!!! You are so good, its hard not to recommend you

    • @BackToBackSWE
      @BackToBackSWE  2 роки тому

      Thank you, glad you liked it 😀
      Do check out backtobackswe.com/platform/content
      and please recommend us to your family and friends 😀

  • @amruthap6334
    @amruthap6334 3 роки тому +2

    thank you so much. actually i have implemented priority queue through linked list but then my prof said i have to implement through heaps. This is a very confusing topic but you actually made it so easy and understandable. ❤🌹

  • @REKHAKUMARI-lv8mz
    @REKHAKUMARI-lv8mz 4 роки тому +1

    Best videos on data structure. Already said that, will say it again!!

  • @terryrodgers9560
    @terryrodgers9560 2 роки тому

    This dude is a straight boss I love your videos man 👍

  • @rheya02
    @rheya02 7 місяців тому

    awesome video! thank you for the clear and enthusiastic explanation:)

    • @BackToBackSWE
      @BackToBackSWE  6 місяців тому

      Happy Holidays 🎉 Thank you for your kind words, Rheya! We'd love to offer you a 40% Off our exclusive lifetime membership just use the code CHEER40 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=CHEER40

  • @stevenaguilar8697
    @stevenaguilar8697 3 роки тому +1

    I'm impress what a great explanation!

  • @mnamaddy
    @mnamaddy Рік тому

    Thank you. That was a nice explanation

  • @2990steven
    @2990steven 2 роки тому

    amazing brother - nice and simple - keep going, i'll be checking here first!

    • @BackToBackSWE
      @BackToBackSWE  2 роки тому

      Thank you, glad you liked it 😀
      Do check out backtobackswe.com/platform/content
      and please recommend us to your family and friends 😀

  • @shahidsiddiqui7152
    @shahidsiddiqui7152 3 роки тому

    Thank you, its very helpful!

  • @mrkyeokabe
    @mrkyeokabe 4 роки тому +1

    very clear explanation & examples

  • @mahdizarepoor8964
    @mahdizarepoor8964 2 роки тому

    Man . you are just the best . you are just doing something that a lot of people will appreciate you . your contexts are just perfect . I can't find tutorials about DS&ALG better than this channel .
    I just don't understand your pause at the end of Videos :|)

  • @abdelrhmanrhyaseen6194
    @abdelrhmanrhyaseen6194 2 роки тому

    Good luck ,you are truly amazing

  • @laharibasu9731
    @laharibasu9731 2 роки тому

    Great work. ❤️❤️

  • @NeerajSharma-oz1mm
    @NeerajSharma-oz1mm 4 роки тому +1

    I’m becoming a fan of yours...
    very nice explanation

  • @dankokozar
    @dankokozar 4 роки тому +1

    You're just great. Keep up good work!

  • @ttoktassynov
    @ttoktassynov 4 роки тому +1

    great explanation! thanks!

  • @guowanqi9004
    @guowanqi9004 5 років тому +11

    9:44 heapify, such a cool word, I'm gona start using it

    • @BackToBackSWE
      @BackToBackSWE  5 років тому +1

      lol, I don't think it is a real word

    • @neurochannels
      @neurochannels 4 роки тому +2

      @@BackToBackSWE in python standard library: heapq.heapify(x) is a thing. :)

    • @BackToBackSWE
      @BackToBackSWE  4 роки тому

      @@neurochannels nice

    • @bostonlights2749
      @bostonlights2749 4 роки тому +1

      Yeah...something out of a spell from Harry Potter

  • @shehroozkhandaker2553
    @shehroozkhandaker2553 4 роки тому +1

    Super useful, thanks!

  • @fredflintstone7924
    @fredflintstone7924 8 місяців тому

    this is really good!..cheers

    • @BackToBackSWE
      @BackToBackSWE  7 місяців тому

      Happy Halloween 🎃 Cheers, fredflintstone! Cool username, You get some extraaa treats - 50% Off our exclusive lifetime membership use the code SPOOKY50 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=SPOOKY50

  • @adityasrivastava8790
    @adityasrivastava8790 3 роки тому +2

    Thanks John

  • @shirlimotro2375
    @shirlimotro2375 5 років тому +1

    Thank you ! super helpful

  • @anmjubaer
    @anmjubaer 3 роки тому +1

    Good as always.

  • @samuelmuthembwa4189
    @samuelmuthembwa4189 3 роки тому

    Clearly explained

  • @memeingthroughenglish7221
    @memeingthroughenglish7221 12 днів тому

    Thank you so much!

  • @rodolfo23cr
    @rodolfo23cr 3 роки тому

    This is great, thank you!

  • @resmiramakrishnan1260
    @resmiramakrishnan1260 3 роки тому +1

    Please add captions...I'm taking notes of this concise and precise video, indeed a precious video. Thank you

  • @selin2949
    @selin2949 6 місяців тому

    Wow, it's the best. Thank you

    • @BackToBackSWE
      @BackToBackSWE  6 місяців тому

      Happy Holidays 🎉 You're the best, selin! We'd love to offer you a 40% Off our exclusive lifetime membership just use the code CHEER40 - backtobackswe.com/checkout?plan=lifetime-legacy&discount_code=CHEER40

  • @yashchauhan5710
    @yashchauhan5710 3 роки тому +1

    really helped ty

  • @dennispilat
    @dennispilat Рік тому

    Great video!

  • @CheugyJesus
    @CheugyJesus 2 роки тому +2

    I’ve been looking for an instructor like you since i first started studying computer science almost seven years ago

    • @BackToBackSWE
      @BackToBackSWE  2 роки тому

      Glad to hear that!

    • @BackToBackSWE
      @BackToBackSWE  2 роки тому

      Subscribe to our DSA course with a flat 30% discount for some amazing content b2bswe.co/3HhvIlV

  • @vibekdutta6539
    @vibekdutta6539 4 роки тому +1

    You are awesome, I am very grateful to you!

  • @TimHandleyScruz
    @TimHandleyScruz 2 роки тому

    Thank you!!!

  • @CrazyHunk14
    @CrazyHunk14 4 роки тому +1

    thanks man .I hope i won't get stuck in any heap questions in interview again!