The best thing is that you are making videos on algorithms and data structure, there are lots of channels in youtube they do teach programming languages but not data structure and algorithms.Thanks a lot mam🙏🙏🙏
waking up at 5 am every day. and seeing your face has now become a habit. thank you so much for such lovely explanations and clearing my concept. mam please make two videos on 1. Reverse a circular doubly linked list & 2. Implementation of circular queue using linked list. Thank you mam you are amazing
mam your way of teaching and the things you taught us I is beyond this comment section ......... You are such a great teacher and I have been in love with you and with your teaching........
Mam I am improving my basic knowledge on coding I have so many of doubts on coding but your teaching coding is assume I am easier to learn thank you mam😊
Ma'am we can also check the condition for 1 element in Dequeue Function i.e if there is only 1 element in the Queue , and we want to delete it , then the code would be void dequeue() { struct node*temp=front; if(front==0 && rear==0) { printf("UnderFlow Condition "); } else if(front==rear) { printf("The element which is deleted is %d ",front->data); front=rear=0; free(temp); } else { printf("The element which is deleted is %d ",front->data); front=front->next; free(temp); } } BTW Thank you so much Ma'am for this Amazing Content ❤❤
Incridible class madam.I have been starting to learn data structure So I was searching good teacher.finally i have gotten your class.I have also subscribed your chanel.Love From Bangladesh.
I used to smoke weeds but at last when you said "bye,bye take care" I quit it,and made my 10 friends too. But joke safat it would be a more interactive if you have coded the logic live on IDE ,at last to the point , straight and simple explanation won my heart ♥️♥️
@Jenny, I think at 2:50 sec, we can't consider front at the right end and rear at the left end since this is a singly linked list and after deque (which will take O(n)) we can't change the rear pointer to point the previous node. What do you think? If its right. please give a like so that it will be on top and will help others.
Just one note while running the code as is, the front and rear are globally initialized as NULL, so the functions dequeue(), display() and Peek() will always hit on the first condition. So, there is a need to either initialise the front and rear as local and pass those as arguments to the given functions or update the global pointers to the recent values as a whole.
thanks for your great explanations the data structure more fun and a lot easier with your lessons in this code there is a little problem when the front and rear pointers referring to same node because front pointer will be null otherwise rear pointer will lost the node but in that situation must refer to null so we need to add that statement to the code. #include #include struct node{ int data; struct node* next; }; struct node* front=0; struct node* rear=0; void enqueue(int data){ struct node* newNode=(struct node*)malloc(sizeof(struct node)); newNode->data=data; newNode->next=0; if(front==0&&rear==0){ front=rear=newNode; } else{ rear->next=newNode; rear=newNode; } } void dequeue(){ struct node* temp=front; if(front==0&&rear==0){ //&&rear==0 printf("empty queue "); } else if(front==rear){ //peek(); front=rear=0; free(temp); } else{ //peek(); front=front->next; free(temp); } } void display(){ struct node* temp=front; if(front==0&&rear==0){ printf("empty queue "); } else{ while(temp!=0){ printf("%d\t",temp->data); temp=temp->next; } printf(" "); } } void peek(){ if(front==0&&rear==0){ printf("empty queue "); } else printf("front data: %d ",front->data); } int main() { dequeue(); enqueue(5); enqueue(0); peek(); enqueue(-3); display(); dequeue(); dequeue(); dequeue(); dequeue(); enqueue(11); peek(); display(); return 0; }
very nice explanation mam and at last your smile is speechless.......... this motivates me to see the next lecture of u without tiredness. thank u for giving us your precious time.
Hello Ma'am, I have 2 questions, 1) Given that the video is about a LL implementation of a linear Q, are there any rules that a circular linked list cannot be used, in place of a singly linked list with 2 pointers? 2) And regarding your statement that a DLL using a head and tail pointer.. A DLL uses Nodes that only have a previous and next pointer right?
1) A circular LL can be used here tho it will also contain the head and tail pointer like the singly LL used here; thus practically we will be using only the semi-circle of the CLL since our enqueuing and dequeuing are restricted between the head and tail pointer. Hence the last pointer of our CLL (from last node to first node) won't be of any use and simply be using memory space. Otherwise using a CLL is as good as singly LL.
in dequeue(), there should also be a condition for when there is only 1 element in queue, that is, else if(front==rear) { Node *temp=new Node(); temp=front; front=NULL; rear=NULL; free(temp); }
Ma'm you are awesome I have learned many topics from your lectures. During this online classes .Online classes are of no use .Thank you ma'am for this Amazing lectures🙏
Mam in deletion condition their should be one more condition that is else if(front==rear) { printf("deleted element is %d ",temp->data); front =rear=NULL; } cause in last else condition (front= front->next) that make the front to point to the next undefined memory
mam in dequeue condition you have to write only if(front==NULL) it is sufficient condition but if you are writing front==NULL&&rear==NULL it will going to give wrong wrong output is if enqueue only one element and we delete it then the output window will be blank
in dequeue you forgot to write the case for a single element, I mean front and rear points to same node, Which means only one element in queue, So we have to do (front=NULL and rear=NULL)
I came across a video here, I think you have a bug, in the dequeue function. You did not check the case if in the queue have only one element. Because then what happens ? You do not maintain the rear pointer. For example when you check if the queue is empty the test will not be correct! Say try if your program to run: enqueue then do dequeue and then print. The easy correction is, after front = front->next: if (front == NULL) rear = NULL; Besides it looks great channel, will start watching
a small correction..... in dequeue operation, a new condition will come, if(rear==front && front!=0 && rear!=0){ front =rear =rear->next; free(temp); }
while popping if there is only one node in the linked list that means front and rear pointing to the same node you are releasing that node and after that front is NULL and rear will point to some unknown location after that if u again try to pop error will come so pls correct the code or let me know if m wrong !!
The best thing is that you are making videos on algorithms and data structure, there are lots of channels in youtube they do teach programming languages but not data structure and algorithms.Thanks a lot mam🙏🙏🙏
Q1qq
I tried this code but its not working ...for linked list and array as well
@@riyajaiswal2137 yes i also check code is not working if we deque element many times
@@riyajaiswal2137 that's not code, that the algorithm .
At struct datatype after} semicolon is required
Ma'am never stop making videos....teacher like u are needed are needed more and more in our society....ur explanations are supurb
waking up at 5 am every day. and seeing your face has now become a habit. thank you so much for such lovely explanations and clearing my concept. mam please make two videos on 1. Reverse a circular doubly linked list & 2. Implementation of circular queue using linked list. Thank you mam you are amazing
Your teaching makes it interesting to listen to you until the end... Because of the clarity and consistency of how you lay out your ideas.
Thank you very much Jenny. You saved me during my C days and now still saving me learning C#.
I see double beauties watching your videos.
mam your way of teaching and the things you taught us I is beyond this comment section ......... You are such a great teacher and I have been in love with you and with your teaching........
jayanthi ma'am , u r simply superb...
keep helping us
best channel for learning DS
Video not only is good but also teacher which teach,she is very amazing
Mam ur lectures is awesome. To the point,No time wastage!😘😘😘😘😘
best youtube tutor mam its uniques and direct point tq :)
I struggles a.lot on this topic
But I am clear right now
Thank u mam from the bottom of my heart
Thank you jenny ma'am for this amazing lecture.
Mam I am improving my basic knowledge on coding I have so many of doubts on coding but your teaching coding is assume I am easier to learn thank you mam😊
Pyaar ho Jaye ga mam, aise padhayenge toh...❤️❤️
.
.
.
.
.
.
.
.
DS se
best lectures ever on Data structures and algorithms
You are the most beautiful lecturer in this century
Mam becuz of you I got the confidence to write the exam
mam thanks a lot for teaching in such a simple way that can be understood by a new person to coding like me👏👏
Ma'am we can also check the condition for 1 element in Dequeue Function i.e
if there is only 1 element in the Queue , and we want to delete it , then the code would be
void dequeue()
{
struct node*temp=front;
if(front==0 && rear==0)
{
printf("UnderFlow Condition
");
}
else if(front==rear)
{
printf("The element which is deleted is %d
",front->data);
front=rear=0;
free(temp);
}
else
{
printf("The element which is deleted is %d
",front->data);
front=front->next;
free(temp);
}
}
BTW Thank you so much Ma'am for this Amazing Content ❤❤
No need if we don't use the rear in the past functions I think .
Thank you so much maam.Your way of Teaching is so good that even a dull student can understand easily.Our Generation is so lucky, because We have you.
Best teacher on YT
Incridible class madam.I have been starting to learn data structure So I was searching good teacher.finally i have gotten your class.I have also subscribed your chanel.Love From Bangladesh.
I used to smoke weeds but at last when you said "bye,bye take care"
I quit it,and made my 10 friends too.
But joke safat it would be a more interactive if you have coded the logic live on IDE ,at last to the point , straight and simple explanation won my heart ♥️♥️
Wow amazing lecture
Sabse acche meri pyari ma'am
On of the best RUclips channel ❤
Mam apko dekh kr apne app hi padne mai man lag jata hai.. Nice explanation
Best Instructor Ever💯
1M .....Let's Go....Congo Ma'am, you deserve much more !!!!
@Jenny, I think at 2:50 sec, we can't consider front at the right end and rear at the left end since this is a singly linked list and after deque (which will take O(n)) we can't change the rear pointer to point the previous node. What do you think? If its right. please give a like so that it will be on top and will help others.
right brother
Just one note while running the code as is, the front and rear are globally initialized as NULL, so the functions dequeue(), display() and Peek() will always hit on the first condition. So, there is a need to either initialise the front and rear as local and pass those as arguments to the given functions or update the global pointers to the recent values as a whole.
thanks for your great explanations the data structure more fun and a lot easier with your lessons
in this code there is a little problem when the front and rear pointers referring to same node because front pointer will be null otherwise rear pointer will lost the node but in that situation must refer to null so we need to add that statement to the code.
#include
#include
struct node{
int data;
struct node* next;
};
struct node* front=0;
struct node* rear=0;
void enqueue(int data){
struct node* newNode=(struct node*)malloc(sizeof(struct node));
newNode->data=data;
newNode->next=0;
if(front==0&&rear==0){
front=rear=newNode;
}
else{
rear->next=newNode;
rear=newNode;
}
}
void dequeue(){
struct node* temp=front;
if(front==0&&rear==0){ //&&rear==0
printf("empty queue
");
}
else if(front==rear){
//peek();
front=rear=0;
free(temp);
}
else{
//peek();
front=front->next;
free(temp);
}
}
void display(){
struct node* temp=front;
if(front==0&&rear==0){
printf("empty queue
");
}
else{
while(temp!=0){
printf("%d\t",temp->data);
temp=temp->next;
}
printf("
");
}
}
void peek(){
if(front==0&&rear==0){
printf("empty queue
");
}
else
printf("front data: %d
",front->data);
}
int main()
{
dequeue();
enqueue(5);
enqueue(0);
peek();
enqueue(-3);
display();
dequeue();
dequeue();
dequeue();
dequeue();
enqueue(11);
peek();
display();
return 0;
}
Your teaching is best. Mam plz make videos of c programming also.
i can trust all your videos because your accuracy is around 100 percent
I tried this code but its not working...linked list and array as well for queue ...both arent working.
very nice explanation mam and at last your smile is speechless.......... this motivates me to see the next lecture of u without tiredness.
thank u for giving us your precious time.
Thanks for letting me understand the queue concisely.
One of the best teacher in the online platform we are very lucky to have a great teacher like you TQ mam
Hello Ma'am, I have 2 questions,
1) Given that the video is about a LL implementation of a linear Q, are there any rules that a circular linked list cannot be used, in place of a singly linked list with 2 pointers?
2) And regarding your statement that a DLL using a head and tail pointer.. A DLL uses Nodes that only have a previous and next pointer right?
1) A circular LL can be used here tho it will also contain the head and tail pointer like the singly LL used here; thus practically we will be using only the semi-circle of the CLL since our enqueuing and dequeuing are restricted between the head and tail pointer. Hence the last pointer of our CLL (from last node to first node) won't be of any use and simply be using memory space. Otherwise using a CLL is as good as singly LL.
You have a MALAYALI English accent...good lecture.
Great explanation ma'am.. Thanks to this video now I can do my home works peaceful...❤❤❤
How the hell had I not watched such good lectures on data structures..amazing explaination ma'am 😊😊
Great mind with great beauty ✨✨✨✨
Thanks you mam ❤
note : while dequeue op, first we have to make temp->nxt as null and then free temp
Do we make a memory address NULL before or after we free it ?
god bless you mam.you are best teacher ever
Ma'am apko jitna thank you bolo utna Kam h 😊❤ but thank you so much ma'am 💝💯 you are the best ❤🎉
Ma'am you should come to my clg coz no facaulty is like you
And no 1 teach like as you teach🤗
to be honest I was distracted while going through the topic, its due to the beauty you hold mam.
in dequeue(), there should also be a condition for when there is only 1 element in queue, that is,
else if(front==rear)
{
Node *temp=new Node();
temp=front;
front=NULL;
rear=NULL;
free(temp);
}
We can just write
free(front)
front=rear=NULL;
😅
@@pavanbhadane8334 exactly what ChatGPT just told me.
Awesome explanation maam, this video help me a lot
Thank for your explanation madam your teaching is very nice and clear madam
Excellent teaching ma'am👌❤
Thanks mam you make this topic very easy for me
mam thankyou so much literally so made data structures easy peasy
Mam, you missed discussing a case in dequeue() i.e,, when front==rear.
When front and rear is point same node
U will have to update the rear or the whole code will break;
Thankyou❤❤your lectures are really good
Ma'm you are awesome I have learned many topics from your lectures. During this online classes .Online classes are of no use .Thank you ma'am for this Amazing lectures🙏
Mam in deletion condition their should be one more condition that is
else if(front==rear)
{
printf("deleted element is %d
",temp->data);
front =rear=NULL;
}
cause in last else condition (front= front->next) that make the front to point to the next undefined memory
Yes, I also noticed...that's why finding in comments
ur explaination is just awesome like you mam
mam super.i can understand ths ds through ur words
Mam why do we need to specify both front and rear while checking whether the list is empty or not. We can do it using rear only.
Thank god we had an online like u mam, even ur lectures in online did it but not upto the point 😂
Excellent Teaching Ma'am
Thank you very much. You are a genius. 👍👍🔝🔝👌👌🙏🙏
Nice explanation mam , Thank you.
Thank you so much ! nice explanations
mam in dequeue condition you have to write only if(front==NULL) it is sufficient condition but if you are writing front==NULL&&rear==NULL it will going to give wrong wrong output is if enqueue only one element and we delete it then the output window will be blank
in dequeue you forgot to write the case for a single element, I mean front and rear points to same node, Which means only one element in queue, So we have to do (front=NULL and rear=NULL)
That's exactly what i was going too comment
I think there is one other way i.e., if we will use only front==0 instead of (front==0 and rear==0) at every place.
else if(head==tail){
std::cout
@@qasimalikhan9692 thanks brother
Thankyou for the wonderful explanation mam your lectures very helpful in this lockdown situation
Where should I put void main function in program that should place in first or last ??
Thank you so much 🙏 madam
Mind Blowing Explanation Maam thank you :))
thanks to you for saving my much time! superb!
Crystal Clear.Thank You Very Much!!
Please upload all videos on data structures we support you
awesome explanation mam,thanks....,plzz make videos on sorting of linklist.
Great Explanation.......
Thank for you teaching mam any how I understand what u said
Thank you so much mam ur vedios are quit easy to understand the concepts of data structures....thank you lotzzz😊😊
thank you ma'am!!!!!
So so thanks Ma'am... 🌻🌻🌻♥️♥️
I have implemented the logic myself first and then watching the video 😁
beautiful and very clear
Absolutely genious mam
Mam, i think you miss one condition in dequeue, when the data being deleted is the last element, we have to make front= rear= null; after deletion.
if(front==rear==new node){
front=rear=0;
}
????
Very easily explained 👌
Hii mam this is teja.. In enqueue you did the one mistake. That is in while loop your wrote the temp. Never temp equals to 0.You to do temp->next ==0
Thank you ma'am ! That was really very helpful.
Thank you for great explanation and putting so much effort mam 🙏
Very clear ma'am
Thank you ma'am ❤️🙏
I came across a video here, I think you have a bug, in the dequeue function.
You did not check the case if in the queue have only one element.
Because then what happens ? You do not maintain the rear pointer.
For example when you check if the queue is empty the test will not be correct!
Say try if your program to run:
enqueue then do dequeue and then print.
The easy correction is, after front = front->next:
if (front == NULL) rear = NULL;
Besides it looks great channel, will start watching
a small correction..... in dequeue operation, a new condition will come,
if(rear==front && front!=0 && rear!=0){
front =rear =rear->next;
free(temp);
}
Yes, I agree .
Amazing content Jenny! Keep it up.
Hello why are you assigning front and rear as 0 ? 0 can be a valid node instead of assigning it as 0 can we assign it as NULL? thanks.
Awesome mam....Helps a lot
while popping if there is only one node in the linked list that means front and rear pointing to the same node you are releasing that node and after that front is NULL and rear will point to some unknown location after that if u again try to pop error will come so pls correct the code or let me know if m wrong !!
Thank you so much 😊♥️♥️♥️
1)Why do we need to check in enqueue if(front==0 && rear ==0), we can check only front==0 alone?
Mam God bless u
Ma'am ! A request...Can you make a video series on data base Management system, please..?
thanks for lectures where i can find the code files?
Thanks Jenny Maam
Mam pls ek tutorial computer organization pe 🙏🙏🙏🙏🙏🙏🙏