JOIN us on
WhatsApp Group Join Now
Telegram Join Join Now

हिंदी माध्यम नोट्स

Categories: C Language in hindi

Linked List : Swapping in c language in hindi , लिंक लिस्ट में स्वपिंग क्या होती है c भाषा में हिंदी में

लिंक लिस्ट में स्वपिंग क्या होती है c कंप्यूटर भाषा में हिंदी में Linked List : Swapping in c language in hindi :-
Swapping  linked list मे सबसे common और मुश्किल operation है | क्योकि इस operation के लिए हमे कई सारे conditions को check करना पड़ता है |

Explanation

इस code मे , employee एक structure है जो की linked लिस्ट के single node को define करता है |
इसमें चार function है :-
void create_list(int n): ये function का use , linked लिस्ट को create करने के लिए किया जाता है |
int swapping(): इस function का use, linked list के दो nodes को swap करने के लिए किया जाता है |
void display_list(): इस function का use linked लिस्ट के सभी items को display करने के लिए किया जाता है |
int counting() : इस function का use ,linked list के nodes की सख्या को calculate करता है |

int  swapping(struct employee *list, int position1, int position2)

1.Singly linked लिस्ट को create किया जाता है और linked लिस्ट के first node के  reference को head pointer मे store किया जाता है |
2.यूजर से swaping के लिए दो position को input करवाते है |जिसे position1 और position2 कहते है |
3.अगर यूजर द्वारा दिए गये position invalid है तब function ‘-1’ return करता है |
4.सभी चार node variable n1 ,n2 ,pre1 और pre2 को null से initial करते है |जहा पर n1 और n2 (जिन nodes को swap करना है ) के address को hold करता है |और pre1 और pre2 इस nodes के पहले के node के address को hold करता है |
5.इसके अलावा दुसरे node type variable ‘t’ को “list” से initial करते है |
6.इसके बाद हम ,node के position को set करते है इसके साथ ही इन node के पहले वाले  node की position को set करते है |
7.loop के अन्दर :
अगर i==position1-1 हो  तब pre1 से t तक update होती है |
अगर i==position1 हो तब position 1 के address से t तक update होती है |
अगर i==position2-1 हो तब pre1 से t तक update होती है |
अगर i==position2 हो तब position 2 के address  से t तक update होती है |
इसके बाद ‘t’ को ‘t’ के addressfield मे store address से update कर देते है |
जब loop एक बार completes होता है तब तक हमे swap किये जाने वाले node की position मिल जाती है |
8.pre1 के address field को n2 से और pre2 के address field को n1 से लिंक कर देते है |
9.उसके बाद n2 के address feild को n1 के से लिंक करा देते है |
10.head node को adjust करा देते है अगर जरुरत है |

void create_list(int n) मे ,

1.सबसे पहले दो pointer variable addnode, t को declare किया जाता है जो की structure data है |
2.इसके अलावा दो variable ‘s’ और ‘i’ को declare किया गया है |
3.फिर pointer variable ‘h’ मे dynamic memory allocate space के address को store किया जाता है |
अगर pointer की null होती तो no more space का message आउटपुट होगा |
अन्यथा ‘h’ के item field मे user input salary को assign किया जाता है |और ‘h’ के address field को ‘null’ assign किया जाता है |इस प्रकार से linked list create हो जाती है लेकिन इसमें केवल एक ही node है |
4.create linked लिस्ट मे , यूजर द्वारा दिए node को insert करने के लिए for loop चलाया जाता है |जिसमे addnode pointer मे , allocate memory के address को assign करा देते है |
अगर addnode की value null होती तब no more space का message print हो जाता है |
अन्यथा
addnode के item field मे , यूजर input salary को assign किया जाता है और addnode के address field को null से assign किया जाता है |
linking की जाती है इसका मतलब है ‘t’ variable के address field मे addnode के address को assign किया जाता है |और t को t address बनाया जाता है |

void display_list() मे ,

1.सबसे पहले एक variable ‘t’ को declare किया जाता है जिसका data type structure employee है |
2.अगर head pointer ‘h’ null है tab empty लिस्ट का message आएगा |
अन्यथा t की h से initial करेगे |फिर while loop चलेगा |
3.while loop की body मे , printf() statement से head pointer या ‘t’ की item को display करा देगे |
फिर t को t के address field मे सेव address से set करगे |
4.step 3 जब तक्क चलगे जब तक की t का address feild मे null नहीं आ जाता है |

int count_nodes() मे

1.while loop की body मे , c को 1 से set करगे और l को l  के address field मे सेव address से set करेगे |
2. while loop मे , l की address field को check करेगे |अगर null नहीं है तब , ‘c’  को 2 से set करगे और ‘l’ को ‘l’ के address से set करेगे |
3.step 1 और step 2  तक चलता रहेगा जब तक की  l  की address field की value null नहीं हो जाती है |
4.’c’ की value को return करेगे |
source code
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct employee{
int salary;                            // salary
struct employee *address; // Address
} * h;
/* Function declaration */
void create_list(int n);
void display_list();
int  counting(struct employee *l );
int  swapping(struct employee *list , int position1, int position2);
void main()
{
int num, pos1, pos2;
printf(“Enter nodes number : “);
scanf(“%d”, &num);
create_list(num);
printf(“\n\nsalary in list before swappingping: \n”);
display_list();
printf(“\nEnter first node position that you want to swapping : “);
scanf(“%d”, &pos1);
printf(“\nEnter second node position that you want to swapping : “);
scanf(“%d”, &pos2);
if (swapping(h, pos1, pos2) == 1)
{
printf(“\n salary swapping successfully.\n”);
printf(“salary in list after swapping  %d node with %d: \n”, pos1, pos2);
display_list();
}
else
{
printf(“Invalid position”\n);
printf(“please enter position greater than 0 and less than nodes in list.\n”);
}
return 0;
}
int counting(struct employee *l)
{
int c = 0;
while (l != NULL)
{
c++;
l = l->address;
}
return c;
}
void create_list(int n)
{
struct employee *addnode, *t;
int s, i;
h = (struct employee *)malloc(sizeof(struct employee));
if(h == NULL)
{
printf(“no more space “);
}
else
{
printf(“Enter the salary : “);
scanf(“%d”, &s);
h->salary = s;      // assign the user inpur salary into salary field of ‘h’
h->address = NULL; //  assign null to address field of ‘h’
t = h;
for(i=2; i<=n; i++)
{
addnode = (struct employee *)malloc(sizeof(struct employee));
if(addnode == NULL)
{
printf(” No more space “);
break;
}
else
{
printf(“Enter the salary : “);
scanf(“%d”, &s);
addnode->salary = s;     // assign the user input salary into salary field of new node
addnode->address = NULL; // assign null to address field of new node
t->address = addnode;   // node linking mean make a link between t or addnode
t = t->address;
}
}
}
}
void display_list()
{
struct employee *t;
if(h == NULL)
{
printf(” Empty List “);
}
else
{
t = h;
while(t != NULL)
{
printf(“salary = %d\n”, t->salary);
t = t->address;
}
}
}
int swapping(struct employee *list, int position1, int position2)
{
struct employee *n1, *n2, *pre1, *pre2, *t;
int i;
const int maxposition = (position1 > position2) ? position1 : position2;
const int total = counting(list);
if ((position1 <= 0 || position1 > total) || (position2 <= 0 || position2 > total))
{
return ( -1 );
}
if (position1 == position2)
{
return 1;
}
/* find out position of items that you want to be swapping */
i = 1;
t  = list;
pre1 = NULL;
pre2 = NULL;
while (t != NULL && (i <= maxposition))
{
if (i == position1 – 1)
pre1 = t;
if (i == position1)
n1 = t;
if (i == position2 – 1)
pre2 = t;
if (i == position2)
n2 = t;
t = t->address;
i++;
}
/* swappinging start */
if (n1 != NULL && n2 != NULL)
{
// Link previous of n1 with n2
if (pre1 != NULL)
pre1->address = n2;
// Link previous of n2 with n1
if (pre2 != NULL)
pre2->address = n1;
/* swapping n1 and n2 by interchange their address */
t = n1->address;
n1->address = n2->address;
n2->address = t;
/8 swaping first element .*/
if (pre1 == NULL)
h = n2;
else if (pre2 == NULL)
h = n1;
}
return 1;
}
Sbistudy

Recent Posts

सती रासो किसकी रचना है , sati raso ke rachnakar kaun hai in hindi , सती रासो के लेखक कौन है

सती रासो के लेखक कौन है सती रासो किसकी रचना है , sati raso ke…

1 day ago

मारवाड़ रा परगना री विगत किसकी रचना है , marwar ra pargana ri vigat ke lekhak kaun the

marwar ra pargana ri vigat ke lekhak kaun the मारवाड़ रा परगना री विगत किसकी…

1 day ago

राजस्थान के इतिहास के पुरातात्विक स्रोतों की विवेचना कीजिए sources of rajasthan history in hindi

sources of rajasthan history in hindi राजस्थान के इतिहास के पुरातात्विक स्रोतों की विवेचना कीजिए…

3 days ago

गुर्जरात्रा प्रदेश राजस्थान कौनसा है , किसे कहते है ? gurjaratra pradesh in rajasthan in hindi

gurjaratra pradesh in rajasthan in hindi गुर्जरात्रा प्रदेश राजस्थान कौनसा है , किसे कहते है…

3 days ago

Weston Standard Cell in hindi वेस्टन मानक सेल क्या है इससे सेल विभव (वि.वा.बल) का मापन

वेस्टन मानक सेल क्या है इससे सेल विभव (वि.वा.बल) का मापन Weston Standard Cell in…

3 months ago

polity notes pdf in hindi for upsc prelims and mains exam , SSC , RAS political science hindi medium handwritten

get all types and chapters polity notes pdf in hindi for upsc , SSC ,…

3 months ago
All Rights ReservedView Non-AMP Version
X

Headline

You can control the ways in which we improve and personalize your experience. Please choose whether you wish to allow the following:

Privacy Settings
JOIN us on
WhatsApp Group Join Now
Telegram Join Join Now