Linked List Data Structure | JavaScript

Поділитися
Вставка
  • Опубліковано 27 січ 2025

КОМЕНТАРІ • 399

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

    I am a little rusty on algos, data structures, etc but would like to get into this type of stuff, let me know what you guys think about that.

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

      Yes brad please make a crash course or even better a whole data structure series. thanks

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

      Please Continue to do more.
      It makes us industry ready

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

      No, You are awesome

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

      Im bad too when it comes to algorithms I keep forgetting about these things

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

      @@alaindimabuyo Yeah, they aren't things I use in my daily projects, however they are great for building muscle in that part of the brain :)

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

    Great video, thanks for taking the time to put this together this together @TraversyMedia!
    One small thing. For you insertAt() and removeAt() functions, I'm pretty sure you want to flip the sign and use an || operator to account for less than 0 values. `if (index < 0 || index > this.size)`

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

    Hey Brad please upload Data structures in js crash course or big course ...please

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

    Most awaited. Please do more videos on data structures.

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

    Hey Brad , just want to thank you for all the efforts you take for us.. Would love to have a series on data structure Javascript. Love from India 💓

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

    I wasn't able to understand all of this after weeks in a computer science course, but 30 minutes into your video I have a much better understanding. You are great at explanations and don't over complicate topics. Thank you so much for this video!

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

    When I first watched this video almost three years ago I was completely lost and could never follow along. I took another shot yesterday and was able to understand it now. If anyone needs help, I will gladly set up a google meet call and explain it with a debugger trace if we need to. Just passing along what others have done for me in the past. Thank you Brad, this was a great explanation!

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

    This dude is a genius. Not just as a developer, but as a teacher. Thanks, Brad! Data structures is by far the most significant hurdle in programming, and I haven't been able to find anyone who can explain the concepts at a level I can understand. It's hard to teach concepts that are basically abstractions built upon abstractions. But from all the resources I've looked at, Brad has come closest, and in JavaScript no less. Bring on more data structures!

    • @dm.hol.3624
      @dm.hol.3624 4 роки тому

      nah, his voice is quite boring, it sounds like he wants to just close the editor and throw his monitor out of a window. There is an example of a good teacher/programmer - "net ninja", I strongly recommend to look at his videos.

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

    you just blow it!!!! How you even do it ....I must say you are X-MEN Mutant YOU JUST MADE LINKDLIST SUPER EASY WITH MOST CONFUSING MODERN JS WOW

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

    Can you do queues, stacks, trees, graphs, recursion? if possible Just a whole series on Data structures and algorithms

  • @fromillia
    @fromillia 5 років тому

    Brad i realy don`t understand why you don`t have at least a million subscribers. You're one of the best youtube IT-blogers (for me you`re the best).

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

    the goat, feeling much more comfortable with LinkedLists after this video. Thank you.

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

    the best video i have seen about linked lists, simple and straight to the point. Well done.

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

    thank you for always being straightforward and keeping it concise. Been watching your videos and following your tutorials for the past year and they have been an immense help. much love from California!

  • @nicolegathany9626
    @nicolegathany9626 4 роки тому +28

    I laughed in this coffee shop when you said, "But don't be a dick about it!" Haha!

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

    that's a great example of creating and working with Linked Lists on JavaScript. Thank you

  • @moayedmustafa9673
    @moayedmustafa9673 5 років тому

    Dude this should indeed be a series, best explanation ever on this topic

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

    You make learning so much easy. Really appreciate you taking the time to make me understand this better than most tutorials out there!!!!

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

    I'm a Full Stack student and just wanted to thank you for this video! It really helped me wrap my brain around the concept of Linked Lists👊🏾

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

    Excellent introduction to a new topic for me!
    One edge-case we're missing here for the insertAt() method is a negative value being passed as the index. I found that this can be better handled by setting up the "index out of range" conditional to be: "index < 0 || index > this.size", so we simply return (do nothing with the data value) if the index is less than 0 or greater than the size of the linkedList. In my testing that gives us the functionality we want, without a resulting "Cannot set property 'next' of undefined" if a negative index value is passed.

  • @bobbymcgee723
    @bobbymcgee723 5 років тому

    I think it's great that you've started getting into this topic. I've had a lot of trouble reading about this stuff and then implementing it. But seeing it from you, then thinking about it for a bit, then going back and trying it myself, has really done the trick.

  • @nanonkay5669
    @nanonkay5669 5 років тому

    Bro, do all the data structures PLEEEEEEEAAAAAASE. I've been looking for videos that discuss data structures and here you are. God sent. Please do more. Pleeease pleeease

  • @Ash-em5pm
    @Ash-em5pm 5 років тому

    Quite glad that you are getting your feet in core CS . It's a rabbit hole from here on and it's really fun as you start diving deeper.

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

    Thanks for the tutorial, I was doing an exercise from Odin Project and can't seem to wrap my head around this list. Your demonstration was very helpful, once I figured out the head variable was the key to this linked List structure, I picked this up real fast. Thanks!

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

    This was very helpful! Today we are learning LInked Lists and React in bootcamp, and this is a great prep for class tonight! Thank you for creating this content!

  • @malibaturhan
    @malibaturhan 5 років тому

    Best tutorial about linked lists. Not just for JS. I searched for java too and this is the best I saw. Since there is just some difference in syntax every c# or java programmer should watch this too.

  • @LenTos1337
    @LenTos1337 5 років тому

    Initially i did this data structure on my own and then watched your implementation, and this really makes your brain find different solutions

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

    Thx you saved my life... I had a project to do for tomorrow and I knew nothing about that ... I was doing Java but the options are the same so thank you very much

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

    You taught so much about something so difficult, even to people like me who don't understand clear English. Amazing! Thanks for simple explanation dude

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

    Line 93 change(index > 0 && index > this.size) to if (index < 0 || index > this.size)

  • @buncha1499
    @buncha1499 5 років тому

    Of course as i've been getting into linked lists, here Brad is with a brand new course on it, love it!

  • @bradliu1891
    @bradliu1891 5 років тому

    Hi Brad, I've been watching your video for years. A little surprised seeing you started algos and data structures. Thanks for sharing. Love you, your Chinese fan.

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

    15:49 "Just don't be a dick about it please." LOL! Thanks for being a real one Brad, and for always producing easy-to-follow videos.

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

    // Insert at index
    insertAt(data, index) {
    // If index is out of range
    if (index > 0 && index > this.size) { ---------this line should be like this----------> if (index < 0 || index >this.size){)
    return;
    }

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

      I checking for this comment :)

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

      That'd mean it won't insert when index is greater than zero even if it's less than the list size. if (index > 0 && index > this.size) is correct.

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

    Thanks a lot for taking the time to explain this. I've been having a difficult time understanding the logic behind linked lists, but now I feel like I am getting it :)

  • @quickSilverXMen
    @quickSilverXMen 11 місяців тому

    00:08 Linked List is a linear data structure using pointers to link elements
    02:21 Linked list consists of nodes linked together with references
    04:40 Creating and initializing a Node and Linked List class in JavaScript.
    07:26 Linked List insertion and printing in JavaScript
    10:14 Inserting data into a linked list and understanding the order of insertion.
    13:03 Inserting elements into a linked list using JavaScript
    15:46 Creating a linked list in JavaScript with inserted nodes
    18:30 Adding nodes to a linked list
    20:50 You can insert wherever you want, no strict rules, just follow basic principles of linked list.
    23:35 Implementing remove functionality for a linked list in JavaScript
    26:52 Demonstrating removal and clearing of a linked list.
    29:16 Explore logic, problem-solving, and more.
    Crafted by Merlin AI.

  • @maciepyou
    @maciepyou 5 років тому

    this brings me back (comp sci degree, but never got a job at it)...good stuff! I think maybe for inserting at index the bound check could be index < 0 || index>size? although using a negative index to insert from the end would be a fun exercise too.

  • @rajsaroj4696
    @rajsaroj4696 5 років тому

    First 10 mins was all i needed, my professor couldn't explain this in 3 hrs.

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

    Great tutorials , sir
    You made me a real Developer.

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

    Thank you for doing this. Please do them for all of the Data Structures. This will be super useful for people try to start out

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

    This tutorial made linked links easy for me

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

    "Don't be a dick about it" I love how honest you are man...

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

    Thanks Brad, you did an amazing job again. Finally you did data structures and algorithm 👏🏼💪🏻

  • @TheYogeshkulkarni
    @TheYogeshkulkarni 5 років тому

    Thank you Brad. Aye for the series on data structures and algorithms. I watch your videos for dual purpose, to learn and to fall asleep.

    • @blasttrash
      @blasttrash 5 років тому

      r u implying that his vids are boring? :P

    • @TheYogeshkulkarni
      @TheYogeshkulkarni 5 років тому

      @@blasttrash Naah man :), videos are damn good and informative, but he has this amazing white noise like voice, so if you watch during the night, you will fall asleep in no time. Try it :P

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

    Hey, Brad, nice explanation. Thanks a lot for this excellent video. I would like just to make a small correction. It seems your range validation is not totally right. You wrote: if (index > 0 && index > this.size), but it will fail passing negative indexes. I believe the correct would be if (index < 0 || index > this.size). What do you think?

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

    I think that you flipped your comparator on line 46. I think you meant to look like ` if (index > 0 || index > this.size) {` which would account for possible negative indexes provided, whereas checking for positive indexes seems like the case that you are looking to execute on.

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

    This is my getAt method, if you find it more clear:
    getAtIndex(index){
    if(index>0 && index>this.size) return
    let count = 0
    let currentNode = this.head
    while(count

  • @MULTICODE
    @MULTICODE 5 років тому

    haha i'd been doing this in school algorithm and data structure, we used to implement double linked list. great to see that you jump into it. this course is really cool and understandable. great work . Love From Cameroon

  • @itsshopboy
    @itsshopboy 5 років тому

    Can't wait for that. The normal projects have become quite popular here on UA-cam

  • @620026200
    @620026200 5 років тому

    Thank you! Your video is even better than a book i bought

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

    At 15:05, for the method insertAt(), shouldn't the edge case be if(index < 0 & & index > this.size)

  • @akintaylor2414
    @akintaylor2414 5 років тому

    Hey Brad thank you so much man. It's important you know your work is helping people out here. I am more confident in my Javascript cause of your course.

  • @kirant9339
    @kirant9339 5 років тому

    Hey Brad , just want to thank you for all the efforts you take for us.And please upload the important topics of javascript in the point of interview please.

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

    This video was super helpful and informative. thank you Brad!

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

    Amazing man. Thanks for everything. Trully amazing. i grasped everything after carefully watching the video

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

    "just don't be a dick about it please" caught me off guard. So funny. Thanks for the video, helps to hear different people talk about data structures.

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

    Please make a complete series of data structures and algorithms in javascript.

  • @jansherkhan590
    @jansherkhan590 5 років тому

    Hi brad Sir, without watch this video because I know you always bring great stuff that is easy to learn. I am greatfull you.

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

    The way you wrote the Remove method would make it impossible to delete the first item in the list. Here is a version that would let you delete the first item:
    remove(index){

    let current = this.head
    let previous
    let count = 0
    if (index === 0){
    this.head = current.next
    this.size--;
    }
    else{
    while (count < index){
    count++
    previous = current
    current = current.next
    }
    previous.next = current.next
    }
    this.size--;
    }

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

    More algos + data structures please! Also some techniques + tips and tricks on how to solve problems. Your tutorials are very informative and easy to understand.

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

    @ 7:10 I saw you almost naming your method insertHead.

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

    Finally some data structures
    Thanks

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

    For ppl who might be confused in the first place how we remove the node from list:
    if there is nothing that points to a specific node
    the node and all of the nodes next to it are all gone due to memory cleaning.

  • @bodolawale5448
    @bodolawale5448 5 років тому

    Thank you Brad. You are turning me into an awesome developer.

  • @fdc_8507
    @fdc_8507 5 років тому

    very nice to start on Data structures and algorithm
    there a tons of this but not much more easier than you brad
    I really enjoying to see your tutorials

  • @MarkDyck
    @MarkDyck 5 років тому

    Sweet. This takes me back to my university days. Love it!

  • @tom-badger
    @tom-badger 5 років тому +1

    Shouldn't early return condition be like (index < 0 || index >= this.size) ? Otherwise if you pass negative value as index it will pass through range check and break data structure.

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

    thank you, your tutorials are helping us a lot a appreciated. 🙏

  • @narendrajoshi5460
    @narendrajoshi5460 5 років тому

    Thanks brad for your efforts. would love to have a series on data structures and algorithms.

  • @arditgjondedaj6143
    @arditgjondedaj6143 5 років тому

    Programming itself is an algorithm and this is useful. Thank you !

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

    Love from India Brad ❤️

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

    Love the video, nice work as always!

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

    Nice LL overview that is easy to follow and understand. Thanks!

  • @AlaminPiash-c6i
    @AlaminPiash-c6i Рік тому

    thanks for awesome tutorial. but you have to use "break" within getAt() -> in if(count==index) condition. otherwise it traverse till the end.

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

    Hey Brad. Great video. I notice a small problem(?).
    You use "if (index > 0 && index > this.size)" but if we pass a negative index, the application will throw an error. Instead of "if (index > 0 && index > this.size)", we could use "if(index < 0 || index > this.size)". What do You think?

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

    C'est la base d'algorithme de liste chaînée. Très bien expliquée

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

    Please, more videos about algorithms and data structures

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

    i had a hard time twisting my head around the logic around the insertAt method during the tutorial, especially at the pt where { node } is being assigned to { previous.next }. what helped me was putting a console log statement after line 67 for node and after 68 for previous to see what's going on. conceptionally, we're creating a new node passing in the data and currentNode, then placing the reference in the previous node's next node property.

  • @chawkichalladia1812
    @chawkichalladia1812 5 років тому

    i worked with linked lists with c programming language so i might be a bit biased but with js this seems like whole lot of mess compared to c. good video though it's always good to let people know about other tools and structures. keep up the good work.

  • @patrykkaczor6509
    @patrykkaczor6509 5 років тому

    I have an algorithms and data structures course next semester at college so would like to see more videos like that, discussing various algos and data structures...

  • @j.foontb.1113
    @j.foontb.1113 5 років тому

    Was waiting list data structure from you and finally. Thank you Brad.

  • @veaarthur3655
    @veaarthur3655 5 років тому

    Yes, Keep them comin Brad! Damn you are creeping towards 1mil subs! Good job!

  • @kamalhm-dev
    @kamalhm-dev 5 років тому +1

    Yes! More data structures please

  • @mahmudulhassan9043
    @mahmudulhassan9043 5 років тому

    Thank you very much Brad.I learn many things from you and i like the way you teaching us.please make a full course on data structure , algorithm and graph...Love from Bangladesh

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

    THis is pure knowledge :) Thanks Brad

  • @adamnorman85
    @adamnorman85 5 років тому

    I love the way you play with. You are talented in how to deliver information Thnx 😘 bro

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

    @4:09 - does node.js need to be installed to implement linked lists? ?

  • @EndMan7
    @EndMan7 5 років тому

    Line 93: if (index > 0 && index > this.size) should be if (index > 0 && index > this.size - 1) or if (index > 0 && index >= this.size), it won't work for index 4 because the size is 4 and there is no index 4.

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

    Thanks Brad! This is a good video. Looking forward to learn data structures and algos from you :)

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

    In terms of operations and assignments (memory complexity) and this might just me being nitpicky... Wouldn't it be better to not assign the previous in the while loop and just assign the previous outside of it? This was my solution before looking at yours, this seems a bit easier to understand and remember in my opinion as you're just initializing a new node at the time of updating the list instead of the near-circular assignments your code goes through. I love these tutorials of yours, and hope you keep them coming!
    let current = this.head; // same as yours...
    let count = 0;
    while (count < location) {
    current = current.next;
    count++;
    }
    let previous = current.next; // now it's time to store the previous as opposed to at every iteration
    current.next = new Node(element, previous); // initialize the new node with the previous as the new next.
    this.size++
    I feel like this might make a difference in a job interview. But again, I might be nitpicking as I'm preparing for a job interview.

  • @0the0ambient0
    @0the0ambient0 3 роки тому

    As always, your tutorial is the best. Thank you!

  • @vishnuumakanthan9583
    @vishnuumakanthan9583 5 років тому

    Hey Brad , really love your work . Thanks a lot. A big inspiration for me.

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

    Thanks for this new lesson! I loved it. I would thank much more for other lessons about those programming core subjects applied to JavaScript.

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

    We doing data structures now? Hurrayyy

  • @pushpakgupta7396
    @pushpakgupta7396 5 років тому

    please either make a series of all the important data structures or tell us where to find them on the internet(with code in js)...thank you for everything :)

  • @sumanthpai5579
    @sumanthpai5579 5 років тому

    Thanks a lot Brad , we are awaiting your expert videos on exhaustive list of data structures like Stacks,Queues,Circular-Queues,Circular Linked list, More operations on linked list, Doubly linked list and all its operations , Tree,Binary tree, HashTable,HashMap,Binary search tree last but not least AVL trees . This would immensly help the Javascript community over there . With bestest regards-Sumanth

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

    woww sir...awesome !!!..i recently started learning data structure and algorithms and took a break from web dev

  • @SokarRomania
    @SokarRomania 5 років тому

    Hi Brad, nice video! I think insertAt should test for index < 0 || index >= this.size and return

  • @joshysmarty2540
    @joshysmarty2540 5 років тому

    This is the best explanation I got.. thanks

  • @darko.ristanovic
    @darko.ristanovic 5 років тому

    Yes! More of these please. Maybe some video about pointers and stuff like that.