Very easy to understand. Would like to see some coding examples too but this is nice. I have been a developer for 6 years and i'm just now getting into data structures. However i'm realizing that i've basically been using them all along without knowing it.
Imagine if your professor teaches like this and add up those simple analogies so their students will have an easier approach to grasp the lesson at hand..... anyways, thank you so much for your precious videos!
Great video..you got it right a Deque is actually called a "Deck" or Double Ended Queue so many people get it wrong an call it a "De Que" then get it confused with Enque/Deque.
I am CS student, and I have been following your channel for almost 2 years. It's a great explanation, but it would be more useful and more interesting if you could also show your explanation in code! Anyways thank you for your efforts!
These videos are great and the visuals help a lot. The black background in your videos seems to improve memory recall for some reason as opposed to a white background. Its easier to visualize what I saw from your videos, than others because of this and it does not burn your retinas out while watching them either lol.
@@emanuelriquelmemontoya3819 Though you are right, if it doesn't come naturally to you even when taught over and over then you should consider choosing a different path, not everyone is made to do one thing we all have a strength and weaknesses.
Not sure if I can do an entire series, but I'm thinking of making a Chrome extension with JS at some point. Thanks for letting me know your thoughts anyway!
I did a twitter bot with your video and stayed very happy!!! Hope this bot I made can help people to be happier, it spreads positive messages! thanks again!
Here is my Deque class (in java) if someone needs example public class CustomDeque { private Integer[] dequeArray; private int count; private int max; private int leftIndex; private int rightIndex; public CustomDeque(int length) { dequeArray = new Integer[length]; //this array can be int if you don't need to store null values count = 0; max = length; leftIndex = 0; rightIndex = 1; } public void addLeft(int data) { if (count >= max) { System.out.println("Deque is full"); return; } dequeArray[leftIndex--] = data; leftIndex = indexBounds(leftIndex); count++; } public void addRight(int data) { if (count >= max) { System.out.println("Deque is full"); return; } dequeArray[rightIndex++] = data; rightIndex = indexBounds(rightIndex); count++; } public Integer popLeft() { if (count == 0) { System.out.println("Deque is empty"); return null; } leftIndex = indexBounds(++leftIndex); count--; int result = dequeArray[leftIndex]; //no need to empty values. Its enough to just move indices. This is purely to debug using toString() method dequeArray[leftIndex] = null; return result; } public Integer popRight() { if (count == 0) { System.out.println("Deque is empty"); return null; } rightIndex = indexBounds(--rightIndex); count--; int result = dequeArray[rightIndex]; //no need to empty values. Its enough to just move indices. This is purely to debug using toString() method dequeArray[rightIndex] = null; return result; } private int indexBounds(int index) { if (index < 0) return dequeArray.length - 1; if (index > dequeArray.length - 1) return 0; return index; } @Override public String toString() { return "[CustomDeque] = leftIndex = " + leftIndex + "; rightIndex = " + rightIndex + "; dequeArray = " + Arrays.toString(dequeArray); } }
@@CSDojo don't be sorry, I am sure you're probably busy at work. I learned so much from your interview problems and this DSA playlist. So thank you for that.
Curious why you use an array to hold your stack? Wouldn't a linked-list make more sense since it already has stack methods (e.g. push and pop)? You even mention that if you run out of space with your array you'd have to create a new array, one of its key limitations. I also find moving the pointer reference to a different index while keeping the value in place instead of actually popping the value to be an awkward representation of popping the top value of the stack
If I have a queue, and it's a tasks queue, once that one task is completed I should remove the element from the queue, or just move the pointers? And if I should just move the pointers, once that the pointers are on its limits, I would have to create another bigger queue to do what I want, right? This approach wouldn't use a lot of memory? Once I made this remark, am I right if I define a queue as something that should be just a collection of things that will be freed of the memory soon, once it's completed? Edit1: I was searching about, and one good response that I found was to use linked-lists, what I think is a great approach, once that it is first-in first-out, so you wouldn't have the problem of needing to change something or access something in the middle of the list, at least I think so. Edit2: @t Here's the code I've developed so far, trying to solve this issue.
Thanks, man. This is extremely illustrative and helpful! Your illustrations make it clear. You're a true teacher. Please, keep doing it! PS: I don't know what the heck an octopus was doing there, but I like it.
hello bro l really like your explanation 👍it is amazing. l hope you will not stop making video anymore. If you make video about why you couldn't make video during these times it would be very good video. good luck everytime thanks in advance !!
wow this helped me understand stack and queues easily Thank you really..... but i was curious how was he presenting like this?? i mean what tools are you using?
Can i combine queue and linkedlist? like making an algorithm that uses both algorithms' features? is it doable? or these two cannot be combined techicaly?..
Hi Dojo! thanks for the cool video! Always fun and inspiring! I just started on coding, I wonder if I should focus more on algorithms or actual project?
Small Tip: Maybe explain what stacks and queues are useful for before explaining how they work. In that order I want to know how they work and why they are important.
Thank you, yes, and about master's - not sure. I think if I was you, I would do CS because it's easier to get a job with it. CS undergrad degree and whatever master's degree you feel like you need if you think you need it.
Hey dojo i am a indian school student class 12 I want to be a data scientist so which language I should learn first c++ or python... Please answer my question.
RUclips really should recommend this channel to more young ppl.
Thats not their policy yet
@Foodie Moody Liar. All you have are food videos. What's wrong with you?
Could not agree more. YK is a real teacher talent! Recommended!
I'm 13 and I watch it
@@Nickname732 and
This man is a legend. I took Data Structures over the summer and forgot everything. This man helps me remember stuff
Very easy to understand. Would like to see some coding examples too but this is nice. I have been a developer for 6 years and i'm just now getting into data structures. However i'm realizing that i've basically been using them all along without knowing it.
i use this channel and codebeauty. this one gives me an awsome overview whille codebeauty explains it with coding she uses c++
Love you brother, the best ex-Google/Facebook employee on RUclips
I was waiting for this video for a lot of time. This channel is best for Python I highly recommend it to my friends.
Great Y.K.
Imagine if your professor teaches like this and add up those simple analogies so their students will have an easier approach to grasp the lesson at hand..... anyways, thank you so much for your precious videos!
I have loved the quarantine life learning programming 24*7
Great video..you got it right a Deque is actually called a "Deck" or Double Ended Queue so many people get it wrong an call it a "De Que" then get it confused with Enque/Deque.
感谢你的分享,让我学习了很多知识,谢谢。
understood nothing, but liking it anyway
I am CS student, and I have been following your channel for almost 2 years. It's a great explanation, but it would be more useful and more interesting if you could also show your explanation in code! Anyways thank you for your efforts!
These videos are great and the visuals help a lot. The black background in your videos seems to improve memory recall for some reason as opposed to a white background. Its easier to visualize what I saw from your videos, than others because of this and it does not burn your retinas out while watching them either lol.
I really struggle on my studies on Computer Science, and I still want it to become successful in this path. Please help me sensei.
keep learning for a few decades that is the only way of becoming good at something
@@emanuelriquelmemontoya3819 Though you are right, if it doesn't come naturally to you even when taught over and over then you should consider choosing a different path, not everyone is made to do one thing we all have a strength and weaknesses.
It is really nice to learn this at age of 15 and good explanation...thank you
I have watched almost all of your videos they are very helpful.
Can you start a series on JavaScript . Love your videos bro
Not sure if I can do an entire series, but I'm thinking of making a Chrome extension with JS at some point. Thanks for letting me know your thoughts anyway!
Phew....I finally understood the gibberish my class was teaching
Wow thank you. Its so easy to understand with this video
That octopus looks real busy. Good work explaining this.
Bro, you just nailed the explanation part!!! Keep up the good work!!❤️❤️
@CS Dojo
Thankyou Sir for guiding us!
I did a twitter bot with your video and stayed very happy!!! Hope this bot I made can help people to be happier, it spreads positive messages! thanks again!
That sounds great! Thank you for letting me know :)
can u share what vedios did u use
finally found a good programming teacher..
"This is how pancakes in the real world work"
Legendary!
your videos help me a lot thank you and please continue this course until the very end
You are the best pls keep uploading. Love from India
Yes I will!
Aaaaah this week I took the first lesson of the data structures course at school thank you 🤗
else if
I was just stuck on that problem at the end, thanks!
You are very good at explaining stuff. It would have great if we could watch at some code example as well, simple ones.
Favorite quote: "That's how pancakes in the real world work."
I just had a quiz on this subject and our topic was stack. This video was really helpful. Hopefully, you'll make a series about C or C++
Hi Margarita ;)
I liked the video just after playing it... and when I was done I wished I could like it again... thanks for the great content you never disappoint
Another great video YK, thank you. I may not know much about data structures, but I know pancakes and you really break it down wonderfully. 🤣
How have I not found this channel before now?
Straightforward analogy. But what's an example of a use case for stacks and queues? In what type of scenario would I need to use a stack?
You are AWESOME !! , you should interact with us by uploading videos on various topics !!!
I will!
Best explanation for DS❤️😘🇮🇳
Hello Cs Dojo!!!. So much time again!!!
Hello, and sorry! I'll be faster :)
I thought you stopped making videos, thank god your back , have learnt a lot from you , Thanks a lot !!!!!
Here is my Deque class (in java) if someone needs example
public class CustomDeque {
private Integer[] dequeArray;
private int count;
private int max;
private int leftIndex;
private int rightIndex;
public CustomDeque(int length) {
dequeArray = new Integer[length]; //this array can be int if you don't need to store null values
count = 0;
max = length;
leftIndex = 0;
rightIndex = 1;
}
public void addLeft(int data) {
if (count >= max) {
System.out.println("Deque is full");
return;
}
dequeArray[leftIndex--] = data;
leftIndex = indexBounds(leftIndex);
count++;
}
public void addRight(int data) {
if (count >= max) {
System.out.println("Deque is full");
return;
}
dequeArray[rightIndex++] = data;
rightIndex = indexBounds(rightIndex);
count++;
}
public Integer popLeft() {
if (count == 0) {
System.out.println("Deque is empty");
return null;
}
leftIndex = indexBounds(++leftIndex);
count--;
int result = dequeArray[leftIndex];
//no need to empty values. Its enough to just move indices. This is purely to debug using toString() method
dequeArray[leftIndex] = null;
return result;
}
public Integer popRight() {
if (count == 0) {
System.out.println("Deque is empty");
return null;
}
rightIndex = indexBounds(--rightIndex);
count--;
int result = dequeArray[rightIndex];
//no need to empty values. Its enough to just move indices. This is purely to debug using toString() method
dequeArray[rightIndex] = null;
return result;
}
private int indexBounds(int index) {
if (index < 0) return dequeArray.length - 1;
if (index > dequeArray.length - 1) return 0;
return index;
}
@Override
public String toString() {
return "[CustomDeque] = leftIndex = " + leftIndex + "; rightIndex = " + rightIndex + "; dequeArray = " + Arrays.toString(dequeArray);
}
}
Your videos are getting rarer to get hold of.
Sorry about that - I'll start posting more from now on
@@CSDojo don't be sorry, I am sure you're probably busy at work.
I learned so much from your interview problems and this DSA playlist.
So thank you for that.
THIS VIDEO IS SO GOOD
Yeah ... You're back ... Horrah .. so happy you're back ... Cheers for yk
This is what I'm waiting for Thankyou so much 🔥👍🙏
Curious why you use an array to hold your stack? Wouldn't a linked-list make more sense since it already has stack methods (e.g. push and pop)? You even mention that if you run out of space with your array you'd have to create a new array, one of its key limitations. I also find moving the pointer reference to a different index while keeping the value in place instead of actually popping the value to be an awkward representation of popping the top value of the stack
This video is really helpful for me Thank you.
csdojo you the boy
Can u please upload videos on regular basis......The way u guide through is really amazing...a sincere request ...🙏
I'll try my best. Thank you!
my friend says he likes your sweater; keep it up man! :)
If I have a queue, and it's a tasks queue, once that one task is completed I should remove the element from the queue, or just move the pointers?
And if I should just move the pointers, once that the pointers are on its limits, I would have to create another bigger queue to do what I want, right? This approach wouldn't use a lot of memory?
Once I made this remark, am I right if I define a queue as something that should be just a collection of things that will be freed of the memory soon, once it's completed?
Edit1: I was searching about, and one good response that I found was to use linked-lists, what I think is a great approach, once that it is first-in first-out, so you wouldn't have the problem of needing to change something or access something in the middle of the list, at least I think so.
Edit2: @t
Here's the code I've developed so far, trying to solve this issue.
Finally you remembered you have a RUclips channel 😂😂😂. Awesome explanation btw👍🔥
Haha yes, sorry about the delay - but I'll post more
@@CSDojo no prpblem Dojo we will wait till die
That was ridiculous righto😀
@@CSDojo I'm waiting 😄. By the way I want to buy a laptop for college......Got any recommendations?
@@KilluaZoldyck-wj5cy im replying very late but i would recommend Dell XPS
Brilliant explanation, thank you
After a long wait.. Welcome back
Sorry for the wait! I'll try to be faster in the future.
You are the life saver! Hontouni arigatou gozaimasu!
I am not the first....😗
I am not the last....😄
But as the notification came...😯
I click it so fast..!!!!.😲
That my phone got blast..!!!.😨
🌻🌻🌻
😂😂😂
welcome back YK
Thank you so much, these vedios are very helpful 🌸🌸🌸
Thanks, man. This is extremely illustrative and helpful! Your illustrations make it clear. You're a true teacher.
Please, keep doing it!
PS: I don't know what the heck an octopus was doing there, but I like it.
Thanks a lot this was extremely helpful
make a video in priority queue and heaps love from nepal❤
hello bro l really like your explanation 👍it is amazing. l hope you will not stop making video anymore. If you make video about why you couldn't make video during these times it would be very good video. good luck everytime thanks in advance !!
Thank you i like your explanation
thanks! that's so easy to understand!
Great explanation 👏👏👏
Awesome explanation ❤
Amazing, I just subscribed!
Thanks for teaching us!!
Thank you. This channel really helps me with my data structures homework and such!
excellent, i learned it all
solution in python
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
def parChecker(symbolString):
s = Stack()
balanced = True
index = 0
while index < len(symbolString) and balanced:
symbol = symbolString[index]
if symbol in "([{":
s.push(symbol)
else:
if s.isEmpty():
balanced = False
else:
top = s.pop()
if not matches(top,symbol):
balanced = False
index = index + 1
if balanced and s.isEmpty():
return True
else:
return False
def matches(open,close):
opens = "([{"
closers = ")]}"
return opens.index(open) == closers.index(close)
print(parChecker('{({([][])}())}'))
print(parChecker('[{()]'))
First time hear that array can be pointed by last element.
You are great man.... And too cool
wow this helped me understand stack and queues easily Thank you really..... but i was curious how was he presenting like this?? i mean what tools are you using?
Thanks brother it really helped
During a stack pop operation, is the top value deleted first and the value of "top" decremented after, or is it the other way around?
it feels like a crime watching this for free..
Thanks cs dojo
Can i combine queue and linkedlist? like making an algorithm that uses both algorithms' features? is it doable? or these two cannot be combined techicaly?..
Hi Dojo! thanks for the cool video! Always fun and inspiring! I just started on coding, I wonder if I should focus more on algorithms or actual project?
I would say, work on a project first! I think having some inspiration is important.
Can you make a series on java please. Cheers
bro what how is it possible to be this early to a coding video
I was wondering, won't it be much convenient if we used linked list instead of an array?
Small Tip: Maybe explain what stacks and queues are useful for before explaining how they work. In that order I want to know how they work and why they are important.
Hello dojo please suggested a book for starting Java programming (beginner(starting))
Hmm actually I'm not sure, but I just started a Twitter thread here: twitter.com/ykdojo/status/1316926401354846208
Hopefully someone will answer it
Thank you dojo 😍
A video on graph
and their algos
like bfs dfs dijkstra
what is 0(1)?
Love you bro
wtf!
How come I wasn't notified by RUclips when you posted this video?!?
Is statistics major good for data science if so would I need a masters?
Good to see CS Dojo posting more!
Thank you, yes, and about master's - not sure. I think if I was you, I would do CS because it's easier to get a job with it. CS undergrad degree and whatever master's degree you feel like you need if you think you need it.
@@CSDojo yeah I’ve been struggling with my CS major, but I guess I just gotta put more effort then what I have been doing I’m in my 3rd year. Thanks!
Which software you use to make these illustrations
You videos are awesome bro, what software are you using to record your screen?
Thank you. I talk about all of it here: www.csdojo.io/faq
Thank you Sir
Wouldn't it be better to use a linked list to implement a stack?
Hi CS Dojo, I was wondering if you could help me with Google not responding issue. It causing me too much trouble. Thanks in advance.
I would've needed this a couple months ago
Please start live classes for beginners on zoom.
Hey dojo i am a indian school student class 12 I want to be a data scientist so which language I should learn first c++ or python... Please answer my question.
I would go with Python :)
C++ is a way harder, so for begging python is one of the best , also python is really popular for data science rn and have a bunch of libraries, etc.
@@CSDojo thanks man
Bro I don't know nothing but I am in the 3 year of my engineering.what should I learn.any suggestions bro.please do reply
Hello yk can you make a video on how to make a working clock using python programming
THANK YOU
I just went thru data structures and didn't learn anything 😞. G.ad I saw this video.
Can you make a video on how to learn c++ and java
You’re amazing!
Thank you!