0% found this document useful (0 votes)
287 views

Linked List

learn linked list in C programming. Linked list forms a base for basic data structures. It involves pointers..... one of the best features of C programming

Uploaded by

darshancool25
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
287 views

Linked List

learn linked list in C programming. Linked list forms a base for basic data structures. It involves pointers..... one of the best features of C programming

Uploaded by

darshancool25
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

// A simple C program to introduce

// a linked list
#include<stdio.h>
#include<stdlib.h>

struct Node
{
int data;
struct Node *next;
};

// Program to create a simple linked


// list with 3 nodes
int main()
{
struct Node* head = NULL;
struct Node* second = NULL;
struct Node* third = NULL;

// allocate 3 nodes in the heap


head = (struct Node*)malloc(sizeof(struct Node));
second = (struct Node*)malloc(sizeof(struct Node));
third = (struct Node*)malloc(sizeof(struct Node));

/* Three blocks have been allocated dynamically.


We have pointers to these three blocks as first,
second and third
head second third
| | |
| | |
+---+-----+ +----+----+ +----+----+
|# |# | |# |# | | #| #|
+---+-----+ +----+----+ +----+----+

# represents any random value.


Data is random because we haven’t assigned
anything yet */

head->data = 1; //assign data in first node


head->next = second; // Link first node with
// the second node

/* data has been assigned to data part of first


block (block pointed by head). And next
pointer of first block points to second.
So they both are linked.

head second third


| | |
| | |
+---+---+ +----+----+ +-----+----+
| 1 | o----->| # | # | | # | # |
+---+---+ +----+----+ +-----+----+
*/
// assign data to second node
second->data = 2;

// Link second node with the third node


second->next = third;

/* data has been assigned to data part of second


block (block pointed by second). And next
pointer of the second block points to third
block. So all three blocks are linked.

head second third


| | |
| | |
+---+---+ +---+---+ +----+----+
| 1 | o----->| 2 | o-----> | # | # |
+---+---+ +---+---+ +----+----+ */

third->data = 3; //assign data to third node


third->next = NULL;

/* data has been assigned to data part of third


block (block pointed by third). And next pointer
of the third block is made NULL to indicate
that the linked list is terminated here.
We have the linked list ready.

head
|
|
+---+---+ +---+---+ +----+------+
| 1 | o----->| 2 | o-----> | 3 | NULL |
+---+---+ +---+---+ +----+------+

Note that only head is sufficient to represent


the whole list. We can traverse the complete
list by following next pointers. */

return 0;
}
// A simple C program for traversal of a linked list
#include<stdio.h>
#include<stdlib.h>

struct Node
{
int data;
struct Node *next;
};

// This function prints contents of linked list starting


from the given node

void printList(struct Node *n)


{
while (n != NULL)
{
printf(" %d ", n->data);
n = n->next;
}
}
int main()
{
struct Node* head = NULL;
struct Node* second = NULL;
struct Node* third = NULL;

// allocate 3 nodes in the heap


head = (struct Node*)malloc(sizeof(struct Node));
second = (struct Node*)malloc(sizeof(struct Node));
third = (struct Node*)malloc(sizeof(struct Node));

head->data = 1; //assign data in first node


head->next = second; // Link first node with second

second->data = 2; //assign data to second node


second->next = third;

third->data = 3; //assign data to third node


third->next = NULL;

printList(head);

return 0;
}

You might also like