Understanding and implementing a Linked List in C and Java

  Рет қаралды 249,223

Jacob Sorber

Jacob Sorber

Күн бұрын

Пікірлер: 423
@seasnek7024
@seasnek7024 4 жыл бұрын
A warning to those who try to write the code as it’s shown: Blink and you’re dead Great vid btw cheers
@JacobSorber
@JacobSorber 4 жыл бұрын
Thanks. Yeah, playing back at half speed might help.
@sounakguha7571
@sounakguha7571 4 жыл бұрын
Omg
@aniketraj2834
@aniketraj2834 3 жыл бұрын
Omg weeping angels run and don’t blink!
@vladkuprienko7162
@vladkuprienko7162 3 жыл бұрын
@@JacobSorber rushing in this case creates tiny mistakes, also it's easier to understand slower line-by-line when first introduced
@firstnamelastname8790
@firstnamelastname8790 3 жыл бұрын
@@JacobSorber I watch in 2x :)
@edgar1906
@edgar1906 4 жыл бұрын
NOW I know what pointers are used for in C!! Can’t imagine all the things you could do with them. That’s amazing! Thank you!
@JacobSorber
@JacobSorber 4 жыл бұрын
I know, right?
@atiedebee1020
@atiedebee1020 3 жыл бұрын
Pointers are also very handy for giving a function a pointer to some big data and you won't be moving as many variables
@uwu-pq1om
@uwu-pq1om 3 жыл бұрын
you can even develop hacking software for games using pointers in c++
@a.h.z2830
@a.h.z2830 4 жыл бұрын
this honestly was the best way to explain the linked lists ,going from the basics and reaching the more complex functionalities ,
@JacobSorber
@JacobSorber 4 жыл бұрын
Thanks. Glad you enjoyed it.
@youvebeensubbedto8009
@youvebeensubbedto8009 4 жыл бұрын
I'm gonna have to watch this at half speed.... very dense with good info :)
@neillunavat
@neillunavat 3 жыл бұрын
Its actually very intuitive...
@thengakola6217
@thengakola6217 3 жыл бұрын
i watched it x2
@averagestudent9070
@averagestudent9070 3 жыл бұрын
@@thengakola6217 🙇🙇
@firstnamelastname8790
@firstnamelastname8790 3 жыл бұрын
@@neillunavat depending on how much exposure you've had, but hey take the time to feel good about yourself LOL post your github, lets see your projects bud
@zishiwu7757
@zishiwu7757 4 жыл бұрын
I'm graduating in May 2021 and preparing for Leetcode and Hackerrank technical interview questions. Jacob, your explanation of how Linked Lists work, and the accompanying C implementation is extremely helpful. I mostly program in garbage collected languages like Python and Java, but after watching re-watching your videos and struggling with my compiler for a while, I feel like I finally understand how Linked Lists are implemented under the hood.
@verbisdiablo
@verbisdiablo Жыл бұрын
Hope you got your job bro
@zishiwu7757
@zishiwu7757 Жыл бұрын
@@verbisdiablo Thank you! Yes I did get the job and really like it so far. I hope you are doing well.
@zishiwu7757
@zishiwu7757 Жыл бұрын
@@verbisdiablo Thanks! Fortunately I did get the job and it's going well so far.
@MohammedU3
@MohammedU3 10 ай бұрын
I gotta be honest all of this is great and all but if you're gonna use linked list a lot then implementing them each time will be such an exhausting and time wasting process so it's better that after you understood how they work that you create functions ready for use when ever you want so that you don't implement time every single time.
@ELMO7TARAMQ8
@ELMO7TARAMQ8 4 жыл бұрын
Amazing video. I am taking an online programing course and for homework, i got stuck with trying to implement a linked-list in C. I understood the theory, but this video helped me see how to actually use it in code. Amazing video. Very smart guy. I had to pause the video and write the code in pen for the first 10 mins until I saw what was happening. Thank you very much.
@brijeshsamal7035
@brijeshsamal7035 3 жыл бұрын
5 minutes in and the explanation is already so helpful. Edit: After going beyond 5 minutes, the speed of his code isn't very convenient really.
@AznPrzsn
@AznPrzsn 4 жыл бұрын
This guy reminds me of my professor. Covers materials at 100 mph, then asks you got it? Understood? Good. Let's move on. Me: Wha.....?
@JacobSorber
@JacobSorber 4 жыл бұрын
Nobody spoke up. So, I kept going. :) Seriously, I do slow down in person, when I can gauge from student faces how things are sinking in. Fortunately, with KZbin you can replay and watch it at reduced speed.
@AznPrzsn
@AznPrzsn 4 жыл бұрын
@@JacobSorber haha true that. I do have difficulty understand some other pieces of the code though that weren't explained what it does. But overall I think better to understand than my professor.
@EquuleusPictor
@EquuleusPictor 2 жыл бұрын
Perfect demonstration that learning to program only in very high level languages such as Java, Python etc will always hide from you the elegant simplicity and beauty of data structures ...
@gerdsfargen6687
@gerdsfargen6687 Жыл бұрын
This Professor is brilliant. I love using your videos Jacob! They really lit up those areas of my brain that needed to grasp C. From a dull glow to a flashing glare! Thanks so much.
@Helloomadison
@Helloomadison 2 жыл бұрын
THE FIRST 30 seconds!! you called me out majorly lol. I was speaking with my prof about some confusion on an assignment (I'm a senior) and he said "well linked lists are something you know already from your intro classes so that part should be easy" I immediately clammed up out of embarrassment and now here I am. Thank you for making this video.
@1309CV
@1309CV 4 жыл бұрын
Your keyboard must be heaven to ASMR listeners.
@miner4236
@miner4236 3 жыл бұрын
makes me anxious af lmao especially when he stops talking, what a disgusting sound xd
@LydiaLeFayeAlastor
@LydiaLeFayeAlastor 21 күн бұрын
horrible for people like me who have misophonia
@leonardomunoz4850
@leonardomunoz4850 3 жыл бұрын
I have been coding in Python and Java for a couple years now, but C had always seemed very intimidating. I am glad I found your channel. Thank you
@karimkohel3240
@karimkohel3240 5 жыл бұрын
"Oh Java i just love your quirks" is my life's motto now
@JacobSorber
@JacobSorber 5 жыл бұрын
Glad I could help. It's more positive than some of the other java-inspired life mottos.
@coolbrotherf127
@coolbrotherf127 Жыл бұрын
One cool trick with linked list and arrays is instead of having a really long array, or a really long list, you have a linked list of pointers to multiple arrays. That way you can easily sort values into arrays without a single one getting too large.
@natb007
@natb007 Жыл бұрын
That's a trie, isn't it?
@Hersonrock12
@Hersonrock12 11 ай бұрын
First time working with linked lists, this introduction felt really good!
@mandeath2971
@mandeath2971 Жыл бұрын
I love the simplicity and implicity of the content which you created. G bless U
@averagestudent9070
@averagestudent9070 3 жыл бұрын
That sound while typing is super cool!
@mlk8852
@mlk8852 5 ай бұрын
Thank you so much! I struggled a lot with this, and you solved all my problems. Thank you for everything, man.
@TheCrunchy2
@TheCrunchy2 5 жыл бұрын
I swear, this video better get 500k views at least.. mans explaining with ease
@JacobSorber
@JacobSorber 5 жыл бұрын
Thanks, Mauro! I'm glad you liked it.
@XDjUanZInHO
@XDjUanZInHO 4 жыл бұрын
Dude THANK YOU. You just made me understand pointers to pointers in a single line with that insert_at_head. I always thought it only served to pass arrays of pointers and chars
@s3nt4kuk1
@s3nt4kuk1 4 жыл бұрын
Thank you. I really like that you understand what you're talking about and it feels like you really enjoy programming, which makes it fun and easy to follow you.
@LeRoiSoleil61
@LeRoiSoleil61 4 жыл бұрын
I wish I could learn this much thing every 18 minutes in my life
@jerryxu6859
@jerryxu6859 2 жыл бұрын
what an underrated channel, thanks!
@davidgaspar4772
@davidgaspar4772 3 жыл бұрын
Jacob Sorber's contents are just amazing.
@kc2838
@kc2838 4 жыл бұрын
Please make more videos on data structures. Your videos are very easy to grasp. Thanks.
@JacobSorber
@JacobSorber 4 жыл бұрын
Thanks. I posted one today, and have a few more planned.
@lorenzobandinelli2638
@lorenzobandinelli2638 3 жыл бұрын
Thank you sooooooo much for providing such a high quality content for free on youtube
@hannahfrazier2890
@hannahfrazier2890 5 жыл бұрын
Honestly this explain is better then my college professors but you code so fast! Thank you for explaining this better!
@JacobSorber
@JacobSorber 5 жыл бұрын
Thanks. Glad it helped.
@savantdude
@savantdude 3 жыл бұрын
probably the only programming tutorial out there that has to be slowed down(playback speed!)
@juststudy2352
@juststudy2352 2 жыл бұрын
Thank you so much I really appreciate the effort and patience you put into your videos , I have my exam tomorrow and I was struggling to understand the concept and it's implementation throughout the semester but your explanation came in handy and made things easier for me ; wish me luck 🤞
@DragonBallStrike
@DragonBallStrike 4 жыл бұрын
this is helpful and all but you don't have to fast forward; it makes it really hard to keep up with what you're doing
@ApnaTechGurukul
@ApnaTechGurukul 2 жыл бұрын
Thanks, i would be awesome if your channel were there during my college :)
@prashantsawant1028
@prashantsawant1028 4 жыл бұрын
Thank you very much for the video. Revised Linked list in 18 min. I have my interview tomorrow.
@chriskorfmann
@chriskorfmann 3 жыл бұрын
Thank you computer science Matthew McConaughey! This saved me on my project.
@screwthisnaming
@screwthisnaming 4 жыл бұрын
Hairless Matthew McConaughey just taught me a lot about coding. Thanks :3
@danielburgoa7209
@danielburgoa7209 Жыл бұрын
And that's how I understood linked list! Thanks a lot for the clear and concise explanation brother, keep the good work ;)
@chavoyao
@chavoyao 3 жыл бұрын
The pointer to the first node in the list is passed by value, so you don't need the temporary variable to print the elements in the list.
@samkabiru8805
@samkabiru8805 Жыл бұрын
You are right. I tested it and had the same results
@afroboi7454
@afroboi7454 2 жыл бұрын
8:45 yes, I am indeed enjoying this video😁
@carefree_ladka
@carefree_ladka 4 жыл бұрын
You're the best man ... Can you please make a video on struct node** head_ref and struct node* head_ref ? I'm just confused with double pointers in linkedlist.
@kbcbala
@kbcbala 4 жыл бұрын
Simplest and clear singly linked list tutorial, I have seen till now. Cheers.
@rustycherkas8229
@rustycherkas8229 2 жыл бұрын
@4:20... Jacob's Ladder 🤣🤣
@matyasmarkkovacs8336
@matyasmarkkovacs8336 Жыл бұрын
You forgot to free up the dynamically allocated nodes. The video was really helpful.
@SuperSamsosa
@SuperSamsosa Жыл бұрын
At min 10:10, node value 32 is transfered to pointer tmp which is transferred to pointer head. Then new node value 8 is created tranferred to tmp which is again tranferred to pointer head. Should head and temp now both have value 8 ? Thx for help
@raphaelchen9960
@raphaelchen9960 4 жыл бұрын
Thank you so much for making this awesome video, I got confused after going through a three-hour lecture. But this video just helps me solve that confusion within 30 minutes.
@mmmmonke8085
@mmmmonke8085 3 жыл бұрын
HOLY CRAP I LOVE THIS VIDEO THANK YOU. The general concept just did not click in my head bit watching this video made me realise how it works it all makes sense now. Definitely subscribing just for that.
@obancium5924
@obancium5924 3 жыл бұрын
Great editing on the video, very well done on explaining this concept and presenting this video in a nice format! Thanks mate :)
@B44-y5i
@B44-y5i 2 жыл бұрын
i swear to god literally make 3-4 hour long ASMR videos of you just coding whatever with that keyboard guaranteed 2 million views
@Bingbong420style
@Bingbong420style Жыл бұрын
dang your keyboard sounds really good.. Also thanks for the java piece
@shaunt1309
@shaunt1309 4 жыл бұрын
This is a great video, very grateful for the efort you put into this.
@musaabmahjoub3244
@musaabmahjoub3244 Жыл бұрын
Thank you very much for the wonderful explanation. I would to add a function to free memory after we have used it. void free_list(node_t *head) { node_t *tmp = NULL; while (head !=NULL) { tmp = head; // Store the current head to tmp head = head->next; // Move to the next node free(tmp); // Free the current node } }
@emmettkjolseth1938
@emmettkjolseth1938 4 жыл бұрын
Dude you're awesome. I'm trying to become a cs major and your videos help me out so much!
@antoinebalaine2061
@antoinebalaine2061 4 жыл бұрын
Thank you for this awesomely clear tutorial !
@JacobSorber
@JacobSorber 4 жыл бұрын
You're very welcome.
@KamillaMirabelle
@KamillaMirabelle 3 жыл бұрын
I like that you are one of the only I have seen that type at the same speed as me
@JacobSorber
@JacobSorber 3 жыл бұрын
😂
@KamillaMirabelle
@KamillaMirabelle 3 жыл бұрын
@@JacobSorber I ask if you ever considered using rust instead of c and c++? In a comment on another of your videos. Just interested because i come From a language theory perspectiv so it is fun to hear the what you thought about it.
@Static172
@Static172 4 жыл бұрын
@10:37 - Why we're required to define head as NULL? When executing I always got a number and a zero at the end of printed list.
@prism_schism
@prism_schism Жыл бұрын
Awesome explanation! Subscribed!
@JacobSorber
@JacobSorber Жыл бұрын
Thanks and welcome
@SiMonPhamphaisailam
@SiMonPhamphaisailam 4 жыл бұрын
Super effective and just what I need. You are my favourite teacher from now on.
@JacobSorber
@JacobSorber 4 жыл бұрын
Thanks! Let me know if there are topics you want to hear more about.
@vactum0
@vactum0 5 жыл бұрын
I think this is the simplest program of linked list, Thank you :)
@DenisPetrovSenior
@DenisPetrovSenior 5 жыл бұрын
Hey, Jacob. Thanks for touching the structures. Tell us about more specific or less used structures as pyramid or quadtree. That would be great.
@benjaminshinar9509
@benjaminshinar9509 5 жыл бұрын
I agree, it can be really nice to have some videos about less common data structures.
@arielspalter7425
@arielspalter7425 3 жыл бұрын
At what point are you freeing the memory that was allocated in the function at 9:48?
@tiagoperes1631
@tiagoperes1631 2 жыл бұрын
Your videos are fantastic. Thank you so much for sharing this knowledge in such a didactic way. Hope to be able to buy your course soon! 👏👏👏👏
@joannaadamczyk7117
@joannaadamczyk7117 4 жыл бұрын
Very good tutorial. Quick but also full of information. I like it that it isn't so slow that you can fall asleep. It motivates to stay in focus. :D
@gauss8134
@gauss8134 2 жыл бұрын
Thank you!! This video helped me so much
@ujjwalbiswas1953
@ujjwalbiswas1953 5 жыл бұрын
Simple, informative, easy to understand
@tastypie2276
@tastypie2276 3 жыл бұрын
Thank you so much, Sir! That was a great video!!!!
@Ananasbleu
@Ananasbleu 3 жыл бұрын
Thank you so much !! I didn't know how to manipulate my *head pointer well to find a node in my list for inst. This was so confusing but now i know better thanks to you :D
@JacobSorber
@JacobSorber 3 жыл бұрын
You're welcome. Glad I could help.
@amansinghbhadauria2818
@amansinghbhadauria2818 2 жыл бұрын
I'll say something & probably will get lambasted, I've been through 10 to 20 tutorials on DSA. I search DSA through C/C++ on KZbin and hundreds of subpar, half-arsed tutorials of incompetent people ( who possibly don't even know what they're doing ) pops up and it's so annoying because not only you've a problem that require DSA comprehension but now you also have another issue of finding a decent resource. I'm glad I found this channel amid heaps and piles of trash. Thank You!
@JacobSorber
@JacobSorber 2 жыл бұрын
Welcome! Glad you found my channel.
@amansinghbhadauria2818
@amansinghbhadauria2818 2 жыл бұрын
@@JacobSorber ♥️
@sinamobasheri3632
@sinamobasheri3632 3 жыл бұрын
sir i look first 3 minutes of this video and l i love you and yor channel thank for sharing your knowledge 🖤🖤🖤🖤🙏🏻🙏🏻🙏🏻🙏🏻
@JacobSorber
@JacobSorber 3 жыл бұрын
Thanks and welcome
@SlowedOutOfExistence
@SlowedOutOfExistence 5 жыл бұрын
You are a beast at coding man, I'm a student at the school 42, I need to learn this data structure quickly for a project
@JacobSorber
@JacobSorber 5 жыл бұрын
Thanks. Make sure you don't just learn it quickly. Learn it well. That way you won't have to learn it again in a month or two. :) Best of luck.
@solarenergynow08
@solarenergynow08 4 жыл бұрын
1)10:12..line 31: why aren't you doing "tmp = head; to assign new node to the front of the list? I know the compiler complains about "head" but I do not get the logic...is it because of the order of the assigments so that we don't "orphan" the rest of the list? 2) I also tried the changes at 12:00; program runs the same without the second change in the "for" loop, you made, replacing 2 lines with one, not sure why.. Thank you.
@kelwong116
@kelwong116 2 жыл бұрын
Thanks for sharing, bro!😄😄
@saturn52
@saturn52 4 жыл бұрын
thanks for explaining all of this so succinctly
@JacobSorber
@JacobSorber 4 жыл бұрын
You're welcome.
@Jack_______oh
@Jack_______oh 2 жыл бұрын
Thank you for the video. I do have to say the portions where you actually write code are simply too fast for me. I am aware I can pause but I might have to pause every 2 seconds at some parts which gets tedious quickly.
@joaogabrielonofre7297
@joaogabrielonofre7297 4 жыл бұрын
Amazinv ideo, thank you! I got a little confused when you created the create_new_node function, why does the function needs to be a pointer too? What do a pointer function exactly points at?
@uwu-pq1om
@uwu-pq1om 3 жыл бұрын
idk im fucking dying fuck im gonna die
@minamcvinnie4629
@minamcvinnie4629 4 жыл бұрын
I have a few questions. Some are probably more nitpicky stylistic preferences, but I'm wondering if there's a specific reason for them: * Why do typedef for the struct as a separate statement instead of together with the struct definition? * Why did you name it node_t instead of just node? * Why use underscores? I thought for compiled languages, CaML case tends to be standard. * What is the point of using a pointer to a pointer in some functions, but just a single pointer in others? * When you used malloc(sizeof(node_t)) why not cast it as (node_t*)malloc(sizeof(node_t)) ? Some of these questions are because after looking up various tutorials online, I seem to get conflicting information.
@JacobSorber
@JacobSorber 4 жыл бұрын
Mostly yes, just stylistic choices. The typedef I did separately, hoping to avoid some confusion from beginner students. As far as coding style, I've seen a lot of different styles over the years in different organizations and companies. Go with whatever style your company wants. As long as you're consisent and your code is readable, I personally don't think it matters much which one you use.
@sounakguha7571
@sounakguha7571 4 жыл бұрын
Hello sir I'm from India.....I get this video by connecting vnp. So that, no video from my location shall not be in the search list......and I found you.....a great teacher.....thank you.....I'm subscribing you
@TornadoeJoe
@TornadoeJoe 4 жыл бұрын
Very good explanation. Thank you!!!
@user-vz8fu6km9u
@user-vz8fu6km9u 4 ай бұрын
Hi, can you also cover A* search in C? Specifically, how to use a linked list with A* to solve a 4x4 puzzle?
@GeoffHowell-xt8or
@GeoffHowell-xt8or Жыл бұрын
Every time you create a new node with malloc, shouldn't you use free to avoid memory leaks? Or am I missing something?
@memeaunt
@memeaunt 5 ай бұрын
do you have courses with reasonable prices on c language ? i like how you explain i understand everything
@phyrricocean7910
@phyrricocean7910 4 жыл бұрын
GREAT vid. Does anyone know how he's using the "make" and "./" commands to compile and run? It looks to me like he's using Visual Studio Code, but, when I tried using VSC, I couldn't figure out how to get the "make" and "./" stuff to work...
@JacobSorber
@JacobSorber 4 жыл бұрын
For make, you need two things - make needs to be installed, and you need a Makefile. I have a few videos about make that might help. As for "./" that's just saying, "it's in the current directory", because that directory isn't located on my PATH.
@phyrricocean7910
@phyrricocean7910 4 жыл бұрын
@@JacobSorber Thank you for replying and explaining! I'll go look for those videos 👍
@mx-trp1307
@mx-trp1307 2 жыл бұрын
You do a great job! Thanks.
@lc0414
@lc0414 5 жыл бұрын
very good video! very easy to understand
@undyinglegends3973
@undyinglegends3973 4 жыл бұрын
I got confused at minute 09:39 what exactly did he do there and why did he had the arrow ?
@mmkvhornet7522
@mmkvhornet7522 2 жыл бұрын
thank you very much , your videos are so simple to understand yet so enriched with information and well explained details i tried to save a linked list and to save in a binary file then reading it but i struggled a lot if make a video about this topic that would be great !!
@ivanlovich5885
@ivanlovich5885 3 жыл бұрын
Hi Jacob, great video!. In min 12:15, how would be the function to insert at the end of the list?
@sigmage5345
@sigmage5345 3 жыл бұрын
Brilliant tutorial, thanks a lot!
@JacobSorber
@JacobSorber 3 жыл бұрын
You're very welcome!
@metaldownm
@metaldownm 4 жыл бұрын
I really like the way you explain. Being a C developer and given the fact that linked-lists were uncharted areas for me, i found this really helpful. In fact i fixed a bug in a piece of code at work that i had implemented. :) It would be really interesting to see free memory malloced for the nodes, once you're finished with linkedLists work.
@JacobSorber
@JacobSorber 4 жыл бұрын
Thanks. I'm glad it was helpful. I don't completely understand your request, though. Are you wanting to see how memory allocators work? Or are you looking for some variant on what I did here with my linked list?
@metaldownm
@metaldownm 4 жыл бұрын
@@JacobSorber actually a variant. You could show how the allocated memory can be freed, once the work with linkedlist has been completed. I would also typecast those mallocs like (node_t*)malloc since they return void* by default. :-)
@majusxp18
@majusxp18 4 жыл бұрын
Thank you very much, your video helped me a lot
@grzegorzsmolak8947
@grzegorzsmolak8947 4 жыл бұрын
im pretty sure i did everything exactly like in the video to 12:22, but when i compile it, it only prints the first node and then crashes, how can i fix this issue
@grzegorzsmolak8947
@grzegorzsmolak8947 4 жыл бұрын
oh nvm, i did a mistake in printing function
@JacobSorber
@JacobSorber 4 жыл бұрын
Glad you got it figured out.
@androth1502
@androth1502 3 жыл бұрын
what's your opinion on using a 2-structure format? one struct that would be the list class, containing pointers to the head, tail, and number of items, and a second structure for the nodes?
@JacobSorber
@JacobSorber 3 жыл бұрын
Good question. The short answer is that I think the 2-struct approach is definitely a viable way to do it, with some strengths and weaknesses. Maybe a good topic for a future video.
@kakerlakenmilch1155
@kakerlakenmilch1155 4 жыл бұрын
love it thanks, could even build trees with this
@angelicamariacelistorres6823
@angelicamariacelistorres6823 Жыл бұрын
Hi, thank you so much for your video, I'm just a beginner to programming and C.I was following you step by step and understanding every line you wrote, but when it came to the part of the for loop, I don't understand why the head value has to be initialized in 'NULL' for the printlist function to work, I just realized that if I don't assign that value to the head pointer I get an error "segmentation fault core dumped". If the list is created, I printed out the head value and I obtain 24, why the function does not work. I tried to read about the error but I still don't understand it. Thank you so much again.
@JacobSorber
@JacobSorber Жыл бұрын
I'm not 100% sure I completely understand the question, but we're using NULL to mean that a pointer doesn't point to anything. So, setting the head to NULL, means that the list is empty. And, in printlist our temporary pointer starts at the head, and when it becomes NULL, we know we have reached the end of the list. If you don't initialize the head to NULL, then its value is uninitialized - it could be anything. So, most likely the seg fault is happening because we try to follow a bad pointer into unmapped memory.
@jarrodolivier6317
@jarrodolivier6317 4 жыл бұрын
Just going to leave a pointer to 13:10
@viniricardoferrera
@viniricardoferrera 4 жыл бұрын
This is awesome! Pretty neat! Thank you
@JacobSorber
@JacobSorber 4 жыл бұрын
You're welcome. Glad you enjoyed it!
@thomasthomas8049
@thomasthomas8049 4 жыл бұрын
Great video! Linked lists are quite interesting. I have two questions: 1. Since inserting, removing, or reordering nodes involves changing the nodes' "next" value, does that mean that linked lists are not used in functional programming? 2. You are using a pointer to a pointer as an argument of your insert_at_head function (i.e. node_t **head), but not for your insert_after_node function. Is there a reason you did that beyond showing the either should work?
@JacobSorber
@JacobSorber 4 жыл бұрын
insert_after_node cannot ever modify the address of the head pointer. So, a single pointer works.
@thomasthomas8049
@thomasthomas8049 4 жыл бұрын
@@JacobSorber Oh! That makes a lot of sense. Thanks!
@ProjectPhysX
@ProjectPhysX 2 жыл бұрын
In my career as a HPC programmer, I only used a linked list once. That was 8 years ago, before I found out that a simple array is 1000x faster. And then I found out that you can get another 100x speedup on GPU with OpenCL. As much as I like programming concepts, data structures like linked lists are inefficient nonsense. And sadly most computer science students never learn optimization, so their software runs slow like molasses.
@krazyolie
@krazyolie 2 жыл бұрын
you need them for interviews.. apparently
@henryle811
@henryle811 4 жыл бұрын
Very nice tutorial
@sparrowhawkguitarboy
@sparrowhawkguitarboy 4 жыл бұрын
Very nice explanation of linked list. Thank you very much! Do you have a public repo with this example?
@JacobSorber
@JacobSorber 4 жыл бұрын
Thanks. I'm glad it helped. Source code is available via Patreon. More info in the video description.
@DuSmh
@DuSmh Ай бұрын
that was EXTREMLY HARDDDDDDDDDDDDDDDDDDDDDDDD!!
@n0handles
@n0handles 4 жыл бұрын
Is it more efficient to do everything through pointers, rather than on the objects themselves? Isn't the program taking up more memory if you have pointers and the objects themselves?
@JacobSorber
@JacobSorber 4 жыл бұрын
By "objects" do you mean the structs? There might be a little padding in the structs, added by the compiler. So, packing the structs might save a little bit of memory, but you're still going to have 8 bytes of overhead per pointer. So, in this case, I think the improvement would be nominal. You would still expect a 200% increase in memory usage.
@n0handles
@n0handles 4 жыл бұрын
@@JacobSorber Thank you very much for clearing it up!
Doubly Linked List (in C)
6:07
Jacob Sorber
Рет қаралды 32 М.
Understanding and implementing a Hash Table (in C)
24:54
Jacob Sorber
Рет қаралды 369 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 75 МЛН
How to Implement a Stack in C (+ encapsulation)
15:38
Jacob Sorber
Рет қаралды 61 М.
LinkedList vs ArrayList in Java Tutorial - Which Should You Use?
11:43
Coding with John
Рет қаралды 613 М.
Header Issues: Guards, Name Mangling, and extern "C"
8:32
Jacob Sorber
Рет қаралды 79 М.
Linked Lists for Technical Interviews - Full Course
1:27:24
freeCodeCamp.org
Рет қаралды 368 М.
How to Implement a Tree in C
14:39
Jacob Sorber
Рет қаралды 102 М.
Master Pointers in C:  10X Your C Coding!
14:12
Dave's Garage
Рет қаралды 334 М.
Structs in C | What you Need to Know
24:39
Caleb Curry
Рет қаралды 11 М.
Learn Linked Lists in 13 minutes 🔗
13:24
Bro Code
Рет қаралды 365 М.
the cleanest feature in C that you've probably never heard of
8:13
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН