Node:: Linkedlist Linkedlist
Node:: Linkedlist Linkedlist
Node:
A node is a collection of two sub-elements or parts. A data part that stores the element
and a next part that stores the link to the next node.
Linked List:
A linked list is formed when many such nodes are linked together to form a chain. Each
node points to the next node present in the order. The first node is always used as a
reference to traverse the list and is called HEAD. The last node points to NULL.
struct LinkedList{
int data;
struct LinkedList *next;
};
The above definition is used to create every node in the list. The data field stores the
element and the next is a pointer to store the address of the next node.
In place of a data type, struct LinkedList is written before next. That's because its
a self-referencing pointer. It means a pointer that points to whatever it is a part of.
Here next is a part of a node and it will point to the next node.
Creating a Node:
typedef struct LinkedList *node; //Define node as pointer of data type struct
LinkedList
node createNode(){
node temp; // declare a node
temp = (node)malloc(sizeof(struct LinkedList)); // allocate memory using
malloc()
temp->next = NULL;// make next point to NULL
return temp;//return the new node
}
The above code will create a node with data as value and next pointing to NULL.
Here the new node will always be added after the last node. This is known as inserting
a node at the rear end.
This type of linked list is known as simple or singly linked list. A simple linked list can
be traversed in only one direction from head to the last node.
Here -> is used to access next sub element of node p. NULL denotes no node exists
after the current node , i.e. its the end of the list.
The linked list can be traversed in a while loop by using the head node as a starting
reference:
node p;
p = head;
while(p != NULL){
p = p->next;
}