Neso Academy is a blessing to all CS students. Shine on! How can you make your videos so brief yet so elaborate. Passed two of sems watching you guys. Looking forward to excel in my academics and crack a Top Tech company interview on the basis of the knowledge provided by you. Lots and lots of love from Assam. Thank you if this could suffice anyway. 💛💛💛💛💙💙💙💙💙💙💙💙💙💜💜💜💜💜💜💜🖤🖤🖤🖤🖤🖤🖤🖤
Been trying to understand this logic from past one month, n i understood clearly in 5 mins after watching this video, really appreciated! Thank you soo much!
Sir please increase the frequency of videos. Data Structures and Algorithms are the most important topics in Gate and campus placements. Your teaching is just too awesome. We are unable to find a better teacher for this subject somewhere else. Please sir, it's our request to increase the frequency of lectures.
Please, upload these video as soon as possible. We know it takes a lot of time to make these videos, but keep uploading them sir. We are waiting for the next video. Thank you sir. Watching from Bangladesh.
sir ur teaching just awsm sir I'm love with ur neso academy seriously Oh my god I felt data structures as so difficult but the way u thought me made my data structure perfect Tq so much sir once again👑👑👑👑👑👑
Sir I am student of b.tech cse you teach great ...but please put algorithm for all the videos you have made i want to find step by step algorithm....but without any doubt you are very helpful thanks...😊
instead of returning head via return we could have used pointer to head; beacuse head is already a pointer it would have been double pointer. void add_beg(node **headPtr, int d){ node* new = malloc(sizeof(node)); new->data = d; // _new->link = NULL;_ *new->link = *headPtr;* **headPtr = new;* } e.g add_beg(&head, data);
Can someone explain why we use "head=add_beg(head,data);"? Why are we assigning the function to head? Also, why is "return head;" necessary for this program?
Before this line writing our head address us 1000 And after writing this line head=add_beg(head,data); we update the head 3000 instead of 1000 Why return the head ,because we achieve a new value of head it means we update the value of head
pointer head and ptr in the function are local to its function. pointer head in the add_beg function only copies the values from the pointer head in main function, both have the same name 'head' but they are different pointer. even though there is 'head = ptr' in the add_beg function, it doesn't mean the value of the pointer head in main function will change to ptr. therefore the value of ptr should be return to main function as pointer head. Actually 'return ptr' will do the same job as 'return head' in this case and you don't need 'head = ptr'.
sir as we know this data is stored in Heap so after printing the data isn't it lost forever in Heap when we exit the program without even deallocating the memory.
im a little bit confuse if i remove head = ptr; the program is just work fine, because the functions already returns the ptr and you assign the head with the ptr in the main functions. why we should assign head to the pointer in the local variable ? and also if you dont assign the head in the main section the head still remains the address of the first node you store not the one that you append
After the explanation, plssss write the whole code together, as I'm unable to understand where to put the add_beg function that you created at 3:25 in the main code ??? Can anyone help me out
why am i getting two different output by calling traverse(). #include #include struct node{ int data; struct node *link; }; void main(){ struct node *head; head = (struct node*)malloc(sizeof(struct node)); head->data = 10; head->link = NULL; insert_at_beg(head); traverse(head); } void insert_at_beg(struct node *head){ int item; struct node *newnode; newnode = (struct node*)malloc(sizeof(struct node)); printf("Enter the data which you want to insert : "); scanf("%d",&item); newnode->data = item; newnode->link = NULL; if(head==NULL){ newnode->link = NULL; }else{ newnode->link = head; } head = newnode; traverse(head); } void traverse(struct node *head){ int count=0; if(head == NULL){ printf("linked list is empty!!"); } struct node *ptr = NULL; ptr = head; while(ptr != NULL){ printf("%d ", ptr->data); ptr = ptr->link; count++; } printf(" total number of items in linked list = %d ", count); } OUTPUT:- Enter the data which you want to insert : 55 // traverse() call inside the insert_at_beg() 55 10 total number of items in linked list = 2 10 //traverse() call inside the main() total number of items in linked list = 1
Teaching is an art & you are the picasso of it.
Damn true my friend!
Correct💯
Tru
Yup that's actually true
Jennie lectures ❤️
Neso Academy is a blessing to all CS students. Shine on! How can you make your videos so brief yet so elaborate. Passed two of sems watching you guys. Looking forward to excel in my academics and crack a Top Tech company interview on the basis of the knowledge provided by you. Lots and lots of love from Assam. Thank you if this could suffice anyway. 💛💛💛💛💙💙💙💙💙💙💙💙💙💜💜💜💜💜💜💜🖤🖤🖤🖤🖤🖤🖤🖤
Hey, I'm from Assam too, you're in which college?
So, true!!
this channel is made for electrical and electronics
The way of teaching is so awesome....just like a pro.
Been trying to understand this logic from past one month, n i understood clearly in 5 mins after watching this video, really appreciated! Thank you soo much!
I felt Sparks Of Knowledge in under a minute of watching this video, LEGENDARY MYTHICAL Channel
Sir please increase the frequency of videos. Data Structures and Algorithms are the most important topics in Gate and campus placements. Your teaching is just too awesome. We are unable to find a better teacher for this subject somewhere else. Please sir, it's our request to increase the frequency of lectures.
Please, upload these video as soon as possible. We know it takes a lot of time to make these videos, but keep uploading them sir. We are waiting for the next video. Thank you sir. Watching from Bangladesh.
Clear explanation. This is just what I needed to understand the topic, thank you so much Neso Academy
You save my life. Trying to understand this concept take me very long time. Your video clear my brain.
Teaching is art.... Neso is artist👌
very easy to understand. In my class,teacher teaches very fast and sketchy so it took me a lot of time to understand
Never in my life I would feel this happy.. thanks lot
can u share this code? I'm not understanding
Wish ur my professor who gets straight to the point with clear explain
You are my greatest teacher of my all time thanks a lot sir
❤
And ur teaching way is so amazing which is easy to understand
The way you are teachig is awesome,this is very easy to understand......really Wowww,really thank you soo much Neso Academy.....
Please continue this data structure series
Don't stop kindly send video as soon as possible
I have watched this lesson of various channels but in vain.
Finally I have learned it from you.🎉❤
sir ur teaching just awsm sir I'm love with ur neso academy seriously
Oh my god I felt data structures as so difficult but the way u thought me made my data structure perfect
Tq so much sir once again👑👑👑👑👑👑
Teaching is an art
And you are the artist💜💜💜
Sir I am student of b.tech cse you teach great ...but please put algorithm for all the videos you have made i want to find step by step algorithm....but without any doubt you are very helpful thanks...😊
EXPLANATION MASTERPIECE !
Dr. Neso, why I cannot do something like so, is so brief:
typedef struct node
{
int data;
struct node *ptr;
}
node;
int main(void)
{
node n2 = {20, NULL};
node n3 = {30, NULL};
n2.ptr = &n3; // link node 2 with node 3
node n1 = {10, NULL};
n1.ptr = &n2; // link node 1 with node 2
for (node *tmp = &n1; tmp; tmp = tmp->ptr)
printf("%i
", tmp->data);
}
Your videos are awesome! Great job teaching this stuff!
It is really a blessing to have neso academy.. Thanks a lot for this... ❤
THANKS MAN! THIS IS SO EASY NOW...
His font colours are of the Indian flag.
instead of returning head via return we could have used pointer to head; beacuse head is already a pointer it would have been double pointer.
void add_beg(node **headPtr, int d){
node* new = malloc(sizeof(node));
new->data = d;
// _new->link = NULL;_
*new->link = *headPtr;*
**headPtr = new;*
}
e.g add_beg(&head, data);
I really understood linked list by watching your videos
Thank you so much for the videos
Sir... please upload all videos as fast as you can.... because i have to end this data structure in this lockdown..and i am totally depend on you
Big fan of Neso Academy
Now the linked list looks like bacho Ka khel 😂😂😂😂 outstanding sirr kept up sir👍🏾
You are such an amazing tr..thankyou sir
you are the best teacher
4:00
We have to typecast ptr into node* as malloc function returns as void pointer datatype
It isn't compulsory. You can do it without explicitly typecasting it.....I don't know the reason behind it tho...
I love Neso Academy. :)
Sir,not getting output,it showing error" undefined reference to" add-beg', plz help me
U are a pure gem
Kya voo
Can someone explain why we use "head=add_beg(head,data);"? Why are we assigning the function to head? Also, why is "return head;" necessary for this program?
Before this line writing our head address us 1000
And after writing this line head=add_beg(head,data); we update the head 3000 instead of 1000
Why return the head ,because we achieve a new value of head it means we update the value of head
pointer head and ptr in the function are local to its function. pointer head in the add_beg function only copies the values from the pointer head in main function, both have the same name 'head' but they are different pointer. even though there is 'head = ptr' in the add_beg function, it doesn't mean the value of the pointer head in main function will change to ptr. therefore the value of ptr should be return to main function as pointer head. Actually 'return ptr' will do the same job as 'return head' in this case and you don't need 'head = ptr'.
First ptr was pointing to the node address 2000. How the same pointer will point to the newly created node of address 3000 ? little confusing sir.
pointer with address 3000 is local to addbeg function only. It is different pointer from the main function one.
Is the function you shown in back is have to insert in a program or not
sir as we know this data is stored in Heap so after printing the data isn't it lost forever in Heap when we exit the program without even deallocating the memory.
i tried following this and it worked! :D but arent you suppose to free the memory after?
im a little bit confuse if i remove head = ptr; the program is just work fine, because the functions already returns the ptr and you assign the head with the ptr in the main functions. why we should assign head to the pointer in the local variable ? and also if you dont assign the head in the main section the head still remains the address of the first node you store not the one that you append
ptr = head in the main function is done to traverse the node while head is always there to point to the first node.
After the explanation, plssss write the whole code together, as I'm unable to understand where to put the add_beg function that you created at 3:25 in the main code ??? Can anyone help me out
m too struggling.. He said to add_beg code but where.. somebody pls help me
Plz upload complete video on ds ASAP🙏
sir when do we have to declare the function as void and when to struct node * type
when a function returns nothing, it is called void, and when a function returns something it you have to write the return type instead of void,
Thanks a lot.......no words to express.
Beautiful . Thank u 😘😘😘 muuuaahhh
Not understanding sir
⌚
Excellent teaching sir
Hocam niye alt yazıyı kapattınız .Lütfen açar mısınız ayrıca mükemmel anlatıyorsunuz
where do you free all the memory allocated by malloc?
The use of a caboose is another way and it simplifies all the code. struct node *createList() {struct node *nd = malloc(sizeof(struct node)); nd->link = nd; return nd;}; void insertBefore(struct node *nd, int new_data) {struct node *new_nd = malloc(sizeof(struct node)); new_nd->link = nd->link; new_nd->data = nd->data; nd->link = new_link; nd->data = new_data;}; Now all the other functions get simplified : void add_beg(struct node *head, int new_data) {insertBefore(head, new_data);}; void add_at_end(struct node *head, int new_data) {struct node *nd = head; while (nd->link != nd) {nd = nd->link;}; insertBefore(nd, new_data);}; void add_at_position(struct node *head, int new_data, in pos) {struct node *nd = head; --pos; while (nd->link != nd && pos > 0) {nd = nd->link; --pos;}; insertBefore(nd, new_data);};
@neso acadmey
This code isn't working showing an error. can u plz give me the source code...
Great work
Awesome Job 👏💯 thanks 👍
Thank You 7/03/2022 5:28 am
one of the best! kudos
what we need to use instead of add_beg?it is not working on code blocks
Sir one error will come at line 9 at struct node *ptr is declaration is not allowed here
whether ptr!=NULL and ptr->link !=NULL are all same?
Where can we find the source code?
Thank you so much sir😍😍😍😍😍😍😍
You're the best!
Thank you ❤😊
Is it mandatory to create two nodes manually to insert a node at the beginning
Why is there * after struct_node in function? can you answer this
Tysm man ! ❤️
why am i getting two different output by calling traverse().
#include
#include
struct node{
int data;
struct node *link;
};
void main(){
struct node *head;
head = (struct node*)malloc(sizeof(struct node));
head->data = 10;
head->link = NULL;
insert_at_beg(head);
traverse(head);
}
void insert_at_beg(struct node *head){
int item;
struct node *newnode;
newnode = (struct node*)malloc(sizeof(struct node));
printf("Enter the data which you want to insert : ");
scanf("%d",&item);
newnode->data = item;
newnode->link = NULL;
if(head==NULL){
newnode->link = NULL;
}else{
newnode->link = head;
}
head = newnode;
traverse(head);
}
void traverse(struct node *head){
int count=0;
if(head == NULL){
printf("linked list is empty!!");
}
struct node *ptr = NULL;
ptr = head;
while(ptr != NULL){
printf("%d ", ptr->data);
ptr = ptr->link;
count++;
}
printf("
total number of items in linked list = %d
", count);
}
OUTPUT:-
Enter the data which you want to insert : 55 // traverse() call inside the insert_at_beg()
55 10
total number of items in linked list = 2
10 //traverse() call inside the main()
total number of items in linked list = 1
Why you are calling travers function 2 times..No need inside the function..
bro one doubt, in struct node why we should'nt declare the head
someone paste the full code here. i am in confussion
Where we write new node code before int main or inside int main??
In comparison with this no such content is available anywhere on CZcams
Why we are using functions for inserting node at the begginning
Hello,sir,why some videos don't have captions, I love your CS videos but if there are not captions it is diffficult for me to understand you.
why dont you free all the pointers from the heap after all with free() , is not that better?
Yaar tum bilkul correct bata rahe ho baki bahut sare log galat salat bata rahe hai phir bhi log na jaane kya kya dekh rahe hai. Self explanatory video
Good information but it would be more beneficial if it's in Hindi language 👍👍
What about the people who don't know hindi bro 😂😂😂
Bro that code is not compiling
Thank you bro🥳🥳🥳
Bro stack implementation of linked list and queue implementation of linked list.
why is the function struct Node* type??
Tq bro😍😍
Sir pls program ko online run kraya kriye
Why struct node* used while writing a function
sir can you help me how to understand easily code of data structure
From South india
what if the list is empty then where you will add at beginning or end?
if(head==NULL)
{
head=temp;
}
and temp will be our first node in this case.
Why even do head=ptr? We have already linked ptr to the node what's the need to update the head pointer?
because head needs to represent the first node in the list
if we don't update the head we won't be able to access the first node later
Does this program execute or any errors in this program..??!!
Please reply it
@@rumanajabeen6080 yes bro it execute
#include
#include
using namespace std;
struct NODE{
int data;
struct NODE *link;
};
struct NODE* add_node(struct NODE*head,int data)
{
struct NODE*ptr;
ptr=new NODE;
ptr->link=NULL;
ptr->data=data;
ptr->link=head;
head=ptr;
return head;
}
int main()
{
struct NODE *head;
head=new NODE;
head->data=45;
head->link=NULL;
struct NODE *current;
current=new NODE;
current->data=46;
head->link=current;
current=new NODE;
current->data=47;
head->link->link=current;
int data=48;
head=add_node(head,data);
if (head==NULL)
cout
Lifesaver 😭😭😭
Super👍👍👍
wont ptr -> link=head update address of head in ptr
How about adding a node at the end of the list?
see previous lecture
I still don't undertand why we need "head = ptr"; Since new_node is already linked to the first node(head)
first node (head) becomes second node but we need head pointing to the first node. So, head = ptr makes head to point to the first node.
how much more content remains in this course
Let me tell you❤
start @3:38, ptr->link = head; head = ptr; ???
Is there something DEEP COPYING going on?
um, the "ptr->link" point to itself? Then how do we get the next link?
Is this program is working on pc Or not