Data Structure and Algorithms with “C” in Hindi
D a t a a S t r ru c tu re a n d Al g o ri t h t h m s wi t h t h C i n n H H i n n d i “ “
” ” ”
■■■ Kuldeep Chand
Betalab Computer Center Falna
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Data Structure and Algorithms with “C” in Hindi Copyright © 2011 by Kuldeep Chand All rights reserved. No part of this work may be reproduced reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark t rademark owner, owner, with no intention of infringement of the trademark. Lead Editors: Kuldeep Chand Distributed to the book trade worldwide by Betalab Computer Center, Behind of Vidhya Jyoti School, Falna Station Dist. Pali (Raj.) Pin 306116 e-mail
[email protected], or visit http://www.bccfalna.com. For information on translations, please contact Betalab Computer Center, Behind of Vidhya Jyoti School, Falna Station Dist. Pali ( Raj.) Pin 306116 Phone 97994-55505 The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, the author shall not have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this book.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
This book is dedicated to those who really wants to learn the subject rather than those who only wants to earn the marks in exams.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Contents Contents ............... Contents ................................ .................................. ................................. ................................. .................................. ................................. ................................. .................4 Data Structure Fundamentals and Arrays .................................................................................. 8 Introduction of Data - Field, Record and File........................................................................... 8 Data Stru Structure ctures s ............... ............................... .................................. .................................. ................................. ................................. ................................. ................... 10 Linear Data Structure ........................................................................................................ 10 Non-Linear Data Structure ................................................................................................ 10 Algorithm : Time – Time – Space Tradeoff and Complexity .............................................................. 11 Algorithms .......... ................... ................... ................... .................. .................. ................... ................... ................... ................... .................. ................... ................... ........... .. 13 Analysis of of Algorithm ...................... ............. ................... ................... ................... ................... .................. ................... ................... .................. ................ ....... 14 Rate of Grow Growth th......................................... .......................................................... ................................. ................................. .................................. ....................... ...... 14 Time Anal Analysis ysis ................. .................................. ................................. ................................. .................................. .................................. ............................... ..............16 Complexity ( Big O Notation ) ............................................................................................ 16 Properties of “O” Notation ................ ................................ ................................. .................................. ................................. ............................... ............... 17 CPU Time............................................. .............................................................. ................................. ................................. ................................. ....................... ....... 18 Input / Outpu Outputt ................ .................................. .................................. ................................. ................................. .................................. ............................. ........... 19 Analyzing Algorithms Algorithms ......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... .............. ..... 21 Inserting and Deleting ........................................................................................................... 26 Algorithm of Inserting Inserting .......... ................... ................... ................... .................. ................... ................... ................... ................... .................. .................. ........... 27 Sorting Sorti ng ............... ................................ .................................. ................................. ................................. .................................. ................................. ............................... ............... 29 Bubble Bubb le Sort ............... ................................ .................................. .................................. ................................. ................................. ................................. .................... .... 29 Selection Sele ction Sort ................. .................................. ................................. ................................. .................................. .................................. ............................... .............. 30 Insertion Inser tion Sort ............... ............................... .................................. .................................. ................................. ................................. ................................. ................... 31 Searchin Sear ching g ................ ................................. ................................. ................................. .................................. ................................. ................................. .......................... ......... 34 Internal Inter nal Sear Search ch ............... ............................... ................................. .................................. .................................. .................................. ............................... .............. 34 External Exte rnal Searc Search h ................ .................................. .................................. ................................. ................................. .................................. ............................. ........... 34 Linear Searching......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 34 Binary Searching......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 37 String Operations and Data Structure ................................................................................... 41 Pattern Matching Algorithms ................................................................................................. 44 Algebra of Matrix Matrix ......... ................... ................... .................. .................. ................... ................... ................... ................... .................. .................. ................... ............ .. 46 Addition of of Matrixes ....................... .............. .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 46 Subtraction of Matrixes ..................................................................................................... 47 Multiplication of Matrix....................................................................................................... 48 Transpose of Matrix .......................................................................................................... 50 Orthogonal Matrix ............................................................................................................. 50 Symmetric Symm etric Matri Matrix x .............. ............................... .................................. .................................. ................................. .................................. ............................. ........... 51 Sparse Spar se Matri Matrix x ............... ............................... .................................. .................................. ................................. ................................. ................................. ................... 51 Linked Linke d Lis Lists ts ................. .................................. ................................. ................................. .................................. ................................. ................................. .......................... ......... 52 Linked Link ed Lis Listt ............... ............................... ................................. .................................. .................................. ................................. ................................. .......................... ......... 54 Creating Linked List .............................................................................................................. 60 Memory Allocation ................................................................................................................ 61 Garbage Collection......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 63 Overflow and Underflow ....................................................................................................... 63 INSERTING New NODE at the End of the LIST ................................................................... 64 INSERTING New NODE at the BEGINNING of the LIST .......... ................... ................... ................... ................... ................ ...... 71 INSERTING New NODE at any MIDDLE Position of the LIST .......... ................... ................... ................... ................. ........ 74 Searching in a Linked List..................................................................................................... 78 LIST is Unso Unsorted rted ............... ................................. .................................. ................................. ................................. .................................. ............................. ...........78 LIST is Sorte Sorted d ................. .................................. ................................. ................................. .................................. .................................. ............................... ..............80
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Sorting ............... Sorting ................................ .................................. ................................. ................................. .................................. ................................. ............................... ............... 81 Inserting into a Sorted Sorted Linked List......... .................. ................... ................... .................. ................... ................... ................... ................... .............. ..... 89 Deleting from a Linked List ................................................................................................... 90 Deletion of First Node ....................................................................................................... 91 Deletion of Last Node ....................................................................................................... 92 Deletion Any NODE from a Linked List ............................................................................. 94 Deleting the Node with a Given ITEM of Information .......... ................... ................... ................... .................. ................... .......... 96 Header Linked List................................................................................................................ 99 Grounded Header ....................................................................Error! Bookmark not defined. Circular Header .......................................................................Error! Bookmark not defined. Creating a Circular Linked List ............................................. Error! Bookmark not defined. Traversing a Circular Linked List .......................................... Error! Bookmark not defined. Two – Two – Way Lists OR Doubly Linked List List .......... ................... ................... ............... .....Error! Bookmark not defined. CREATION of Doubly Linked List ........................................ Error! Bookmark not defined. INSERTING NODE After Specific Node Number ........ ................. ......... Error! Bookmark not defined. DELETION In Doubly Linked List ......................................... Error! Bookmark not defined. DELETION of Specified NODE of the Doubly Linked List ..... Error! Bookmark not defined. Circular Doubly Linked List ......................................................Error! Bookmark not defined. Stacks and Queues .....................................................................Error! Bookmark not defined. STACK STAC K ................. .................................. .................................. ................................. ................................. .................Error! Error! Bookmark not defined. PUSH PUS H................ ................................. .................................. ................................. ................................. .................Error! Error! Bookmark not defined. POP ............... ................................ .................................. ................................. ................................. .................... ...Error! Error! Bookmark not defined. Postponed Decisions ...........................................................Error! Bookmark not defined. ARRAY Representation Representation of Stack Stack ........ .................. ................... ................... ............... .....Error! Bookmark not defined. PUSH Algorithm For Array Stack .........................................Error! Bookmark not defined. POP Algorithm For Array Stack......... .................. ................... ................... ................ .......Error! Bookmark not defined. Linked List Representation Representation of STACK .......... ................... ................... ............... .....Error! Bookmark not defined. Arithmetic Expressions Expressions and POLISH POLISH Notations .......... ................... ............. .... Error! Bookmark not defined. Evaluation of a Postfix Expression ....................................... Error! Bookmark not defined. Transforming Transformin g Infix Expression into Postfix Expression ......... Error! Bookmark not defined. Quick Quic k Sort ............... ............................... ................................. .................................. ............................... ..............Error! Error! Bookmark not defined. Complexity Complexi ty fo the Quick Q uick Sort Algorithm ......... ................... ................... ............. ....Error! Bookmark not defined. Queues................. Queues .................................. .................................. ................................. ................................. .................Error! Error! Bookmark not defined. Representation of Queues ...................................................Error! Bookmark not defined. PUSH Algorithm For Array Queue ....................................... Error! Bookmark not defined. POP Algorithm For Array Queue ..........................................Error! Bookmark not defined. Linked Representation of Queues ........................................ Error! Bookmark not defined. Circular QUEUE ......................................................................Error! Bookmark not defined. Error! Bookmark not defined. DEQUE DEQU E ................ ................................. .................................. ................................. ................................. .................Error! Priority Queue .........................................................................Error! Bookmark not defined. Error! Bookmark not defined. Trees ............... ............................... ................................. .................................. ................................. ......................... .........Error! Binary Bina ry Tree................ .................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. Terminology............................................................................. Error! Bookmark not defined. A Complete Binary Binary Tree ......... .................. ................... ................... .................. ................... ............ ..Error! Bookmark not defined. Extended Binary Tree or 2 – 2 – Tree................ ................................. ............................ ...........Error! Bookmark not defined. Representation of Binary Tree .................................................Error! Bookmark not defined. Sequential Representation ...................................................Error! Bookmark not defined. Linked List Representation ...................................................Error! Bookmark not defined. Traversing Binary Tree ............................................................Error! Bookmark not defined. Preorder Traversing .............................................................Error! Bookmark not defined. Inorder Traversing ................................................................Error! Bookmark not defined.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Postorder Traversing ...........................................................Error! Bookmark not defined. CREATING Binary Tree ..........................................................Error! Bookmark not defined. INSERTING in a Binary Tree ...................................................Error! Bookmark not defined. Creating Binary Tree Array Representation Representation .......... ................... .................. ...........Error! Bookmark not defined. Binary Search Tree (BST) .......................................................Error! Bookmark not defined. SEARCHING SEARCHIN G and INSERTING I NSERTING in Binary Search Tree ......... Error! Bookmark not defined. Complexity of the Searching Algorithm ................................ Error! Bookmark not defined. DELETING from Binary Search Tree ................................... Error! Bookmark not defined. Complexity Complexi ty of Binary Search Tree .......... ................... .................. ................... ............ ..Error! Bookmark not defined. Balanced Binary Tree ..............................................................Error! Bookmark not defined. AVL Tree ( Height Height Balanced Tree ) ......... ................... ................... .................. ...........Error! Bookmark not defined. Tree Rotation .......................................................................Error! Bookmark not defined. Insertion a Node in AVL Tree ...............................................Error! Bookmark not defined. Deletion From an AVL Tree .................................................Error! Bookmark not defined. M – Way Searc Search h Tree................. .................................. .................................. ............................ ...........Error! Bookmark not defined. Searching in M – M – Way Tree............................ ............................................ ...................... ......Error! Bookmark not defined. Insertion in M – M – Way Tree ......................................... .................................................... ...........Error! Bookmark not defined. Deletion from M – M – Way Tree ............... ............................... ................................. .................Error! Bookmark not defined. B – Tree ............... ............................... .................................. .................................. ................................. .................Error! Error! Bookmark not defined. Graph............... ............................... ................................. .................................. ................................. ......................... .........Error! Error! Bookmark not defined. Basic Concepts and Definitions ...............................................Error! Bookmark not defined. Path................ .................................. .................................. ................................. ................................. ...................... ......Error! Error! Bookmark not defined. Sequential Representation ......................................................Error! Bookmark not defined. Adjacency Matrix Matrix ......... ................... ................... .................. .................. ................... ................... ............. ....Error! Bookmark not defined. Error! Bookmark not defined. Path Matr Matrix ix ................ .................................. .................................. ................................. ............................ ...........Error! Shortest Path Algorithm ...........................................................Error! Bookmark not defined. Warshall Algorithm ..................................................................Error! Bookmark not defined. Warshall’s Modified Algorithm ................ ................................ ................................. .................Error! Bookmark not defined. Dijkstra’s Algorithm............... Algorithm ................................. .................................. ................................. .................Error! Error! Bookmark not defined. Error! Bookmark not defined. Floyd’s Technique ................ .................................. .................................. ................................. .................Error! Linked List Representation Representation of Graph (Adjacency List) ............ . Error! Bookmark not defined. Operations on GRAPHS ..........................................................Error! Bookmark not defined. Inserting in a GRAPH ...........................................................Error! Bookmark not defined. Deleting From a GRAPH ......................................................Error! Bookmark not defined. Traversing A GRAPH ...........................................................Error! Bookmark not defined. Breadth First Search ................................................................Error! Bookmark not defined. Depth First Search...................................................................Error! Bookmark not defined. Partially Ordered Set Set (POSETS)......... ................... ................... .................. .................. .........Error! Bookmark not defined. Topological Sorting ..................................................................Error! Bookmark not defined. Minimum Spanning Tree (MST) ...............................................Error! Bookmark not defined. Error! Bookmark not defined. Kruskal’s Algorithm............... Algorithm ................................. .................................. ................................. .................Error! Searching and Sorting .................................................................Error! Bookmark not defined. Searchin Sear ching g ................ ................................. ................................. ................................. ............................... ..............Error! Error! Bookmark not defined. Data Modification .....................................................................Error! Bookmark not defined. Sorted Sorte d Array........................................ ........................................................ ................................. .................Error! Error! Bookmark not defined. Error! Bookmark not defined. Linked Link ed List........................................... ........................................................... ................................. .................Error! Binary Search Tree ..............................................................Error! Bookmark not defined. Linear and Binary Searching ...................................................Error! Bookmark not defined. Hash Table ................ .................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. Hashing Hash ing ............... ............................... ................................. .................................. ............................... ..............Error! Error! Bookmark not defined. Hash Function ......................................................................Error! Bookmark not defined.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Collision Resolution .................................................................Error! Bookmark not defined. Open Addressing : Linear Probing(Key Comparisons) Comparisons) and Modifications ..... Error! Bookmark not defined. Clusteri Clu stering....... ng........................ .................................. ................................. ................................. .................... ...Error! Bookmark not defined. Quadratic Probing ................................................................Error! Bookmark not defined. Double Hashing ...................................................................Error! Bookmark not defined. Deletion Del etion ............... ............................... ................................. .................................. ............................... ..............Error! Error! Bookmark not defined. Rehashi Reh ashing ng.............. ............................... .................................. .................................. ............................ ...........Error! Error! Bookmark not defined. Bucket And Chaining ...........................................................Error! Bookmark not defined. Selecting Good Hash Function.......... ................... ................... ................... ................ .......Error! Bookmark not defined. File Struct Structure ure ................ .................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. File Syste System m ............... ................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. Basic Concepts of File and File System......... ................... ................... ................ .......Error! Bookmark not defined. File Data Storage and Retrieval ........................................... Error! Bookmark not defined. File Naming and File Attribute Maintenance ......... .................. ................ ....... Error! Bookmark not defined. File System Application Program Interface (API) .......... .................. ........ Error! Bookmark not defined. Disk Space Allocation ..............................................................Error! Bookmark not defined. FAT File System (MS-DOS) ....................................................Error! Bookmark not defined. Directory System .....................................................................Error! Bookmark not defined. UNIX File System ....................................................................Error! Bookmark not defined. i-node File System (Flat File System)......... ................... ................... ................ .......Error! Bookmark not defined. Directory File System ...........................................................Error! Bookmark not defined. Error! Bookmark not defined. Primary Prim ary Key ................. .................................. .................................. ................................. ...................... ......Error! System Architecture .............................................................Error! Bookmark not defined. Primary and Secondary Structure ............................................Error! Bookmark not defined. Secondary Storage Devices ....................................................Error! Bookmark not defined. Hard Disk Drives ..................................................................Error! Bookmark not defined. Disk Capacity .......................................................................Error! Bookmark not defined. Disk Dis k Acce Access ss ................. .................................. .................................. ................................. ...................... ......Error! Error! Bookmark not defined. Last Thing by Author ...................................................................Error! Bookmark not defined.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Data Structure Fundamentals and Arrays Data - Field, Record and File fdlh Hkh leL;k ds lek/kku ds fy, Computer dks fofHkUu izdkj ds ekuks a dh t:jr gks rh gSA Computer esa fdlh eku ;k ekuks a ds lew g dks Data dgk tkrk gS vkSj ekuks a ds lewg ds fdlh Single Item dks Data Item dgk tkrk gSA ftl Data Item dks Sub Item esa foHkkftr fd;k tk ldrk gS] ml Data Item dks Group Item ;k Composite Data Item dgrs gSa vkSj ftl Data Item dks Sub Item es a foHkkftr ugha fd;k tk ldrk] ml Data Item dks Elementary Data Item ;k Primary Data Item dgrs gSaA mnkgj.k ds fy, fdlh School es a tks fofHkUu Students Study djrs gSa mu lHkh Students dk dksbZbZ uk dksbZbZ uke gks rk gSA gj Student dk uke Computer ds fy, ,d Data gSA ge gj Student ds uke dks rhu Sub Items First Name, Middle Name o Last Name foHkkftr dj ldrs gSAa blfy, Name ,d Group Data Item gSA blh rjg tc Hkh dks bZ bZ Student fdlh School es a Admission ys rk gS rks ml Student dks ,d Unique Serial Number iznku fd;k tkrk gSA ,d Student dks tks Number Allot Number Allot fd;k tkrk gS og Number fdlh nw ljs Student dks Allot ugha fd;k tkrkA ;s Number fdlh veqd fo/kkFkhZ dh Unique igpku gks rh gSA fofHkUu Students dks fn, tkus okys Serial Number dks ge vU; Data Items esa foHkkftr ugha dj ldrs gSAa blfy, Serial Number ,d Elementary Data Item dgykrk gSA ds fdlh lew g dks Fields, Records o Files dh Hierarchy ds :i es a Organize fd;k tk ldrk gSA ge ftl fdlh Hkh pht dks Computer es a Manage djuk pkgrs gS]a mls ,d Entity ;k bdkbZ ds :i esa ysrs gSAa nqfu;k f u;k dh gj pht Computer ds fy, ,d Object ;k Entity gSA tSls Table, Chair, Computer, CPU, RAM vkfnA blh rjg ls fdlh Company ds fofHkUu Employees ml Company ds fy, Entities ;k Objects gSa vkSj fdlh School ds fofHkUu Teachers, ml School ds Objects ;k Entities gSAa blh rjg fdlh Class ds fofHkUu Students ml Class ds Objects ;k Entities gSAa ;kuh nqfu;k dh gj oLrq Computer ds fy, ,d Object ;k Entity gS ftls Computer es a Data Item ds :i es a ’krk,a gks rh gS a] tks mls vU; Object ;k Organize fd;k tk ldrk gSA gj Object ;k Entity dh dqN fo”ks’krk,a Entity ls vyx cukrh gSA tSls ,d Student dh fofHkUu fo”ks’krk,a mldk uke] mldk Serial Number, mldh mez] mldk Color mldk Sex vkfn gks ldrh gSaA blh rjg ls fdlh Company ds fofHkUu ’krk,a gks ldrh gS aA fdlh Hkh Entity ;k Object dh fofHkUu fo”ks’krkvksa dks Employees dh Hkh viuh fo”ks’krk,a Entity dh Characteristics ;k Properties ;k Attributes dgrs gSAa bu Attributes es a dksbZ bZ uk dksbZbZ eku Assign fd;k tk ldrk gSA ;s eku Numeric ;k Non - Numeric gks ldrs gSAa tSls fdlh Student ds fofHkUu Attributes dks fuEukuqlkj eku iznku nku fd;k tk ldrk gS& Data
//=================================================================
Sr_No
Name
Age
Sex
Class
123 Amit Sharma 15 Male 10 234 Rahul Varma 16 Male 10 121 Salini Bohra 15 Female 9 544 Silpa Roy 14 Female 8 534 Prince Mishra 13 Male 6 532 Devendra Bhati 14 Male 9 //================================================================
Entity dk og lew g tks fd Similar Attributes Similar Attributes dks Share djrk gS] Entity Set dgykrk gSA tSls Table 1 esa fofHkUu Students leku Attributes dks Share dj jgs gSa blfy, ;s lew g g Students Entities dk ,d Set dgykrk gSA Entity ds gj Attribute dks iznku nku fd, tk ldus okys eku dh ,d Range gksrh gSA ge Table 1 es a ns[k [k ldrs gSa fd ges a gj Row es a fdlh Students dh fofHkUu tkudkfj;ka izkIr gks jgh gSaA
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
;gka fdlh Attribute dks iznku nku fd;k tkus okyk eku ,d Processed Data gks rk gSA bl Table esa dbZ Attributes feydj fdlh ,d Student ds ckjs es a iwjh Information iznku dj jgs gS aA og rjhdk ftles a Data dks Fields, Records o Files ds Hierarchy ds :i es a Organized djrs gS a] Data, Entity o Entity Set ds chp es a ,d Relationship dks Represent djrk gSA Field fdlh Single Entity ds fdlh Attribute dks Represent djrk gSA fdlh Entity ds fofHkUu Attributes dks iznku nku fd;k tkus okyk eku Record dks Represent djrk gS vkSj fdlh Entity Set ds fofHkUu Entities dks File fdu tks Field fdlh Represent djrk gSA fdlh Record es a fdlh Entity ds dbZ Fields gks ldrs gSa ysfdu Record dks Uniquely Identify djrk gS mls Primary Key Field dgrs gSAa tSls fdlh School ds fofHkUu Students dks Uniquely Identify djus ds fy, gj Student dk ,d Serial Number gksrk gSA Data dks Fields, Records o Files ds :i esa vPNh rjg Organized djus ds ckn Hkh Data dks Maintain o Process djuk dkQh tfVy gks rk gSA bl otg ls Data dks vkS j vf/kd tfVy Structure es a Organize fd;k tkrk gSA fdlh Hkh Data Structure dks le>rs le; ges a fuEu ckrksa ij /;ku nsuk uk gksrk
gS& 1 2 3 4
Structure dh Logical ;k Mathematical Description Structure dh Computer ij Processing Structure dk Analysis ftlds vk/kkj ij ;s r; fd;k tkrk gS fd dksbZ bZ Data Structure Memory esa fdruh Space ysxk xk vkSj Data dks Process djus es a fdruk le; yxsxkA xkA puk,a fdl izdkj ls laxfBr xfBr gks dj jgs axhA xhA Memory esa lw puk,a
fdlh Hkh Program dh lkFkZdrk drk lw pukvks pukvks a ds laxBu ds vk/kkj ij fuHkZj gks rh gSA izksxzke dh ;ksX;rk bl ckr ij fuHkZj djrh gS] fd Data Memory es a fdl izdkj ls laxfBr xfBr ( Organized ) gS a o mudk vkil es a D;k lEca/k/k gSA ;fn Data lgh izdkj ls Memory esa laxfBr xfBr uk gksa] rks izksxz xkz e ds Execution esa vf/kd le; yxrk gSA vr% fdlh Hkh izksx ke z ds Fast Execution ds fy;s mfpr Data Structure dk p;u cgq r gh t:jh gSA Data dk og lew g] g] tks Memory es a de ls de LFkku ys rk gks vkSj lkeq fgd fgd :i ls vkil es a lEcaf/kr f/kr gks a rFkk izksx ke z es Fast Execution es a lg;ksx djrs gksa] Data Structure dgykrs ga SA Data Structure okLro es a Program cukrs le; viuk, tkus okys fofHkUu rjhdks a esa ls lcls ljy o vPNk rjhdk mi;ksx esa ysuk uk gks rk gSA ;s mi;ksx es a fy;s tkus okys rjhds ij fuHkZj djrk gS fd gekjk Program o ml Program ds Data Memory es a fdruk Space ys a sxs xAs tSls fd ge ,d Array esa
Structure Data lnL;ks a ds chp Relationship Hkh iznf”kZr djrk gSA tSls fd ,d Telephone Directory esa mu lHkh O;fDr;ks a ds uke] irs o Phone Number fy[ks gksrs gS a] ftuds ikl Phone gSA ;s lHkh ,d Øe es a gksrs gSaA ;s Øe Data Structure gS vkSj lHkh Phone Numbers dks mlds ekfyd ds uke o irs ds lkFk fy[kk tkrk gS] ftlls fdlh Hkh Phone Number ls ml Phone ds ekfyd dk uke irk vkfn tkuk tk ldrk gSA bl izdkj ls lHkh Phone Numbers dk mlds ekfyd ls lEca/k/k gSA blfy;s ge dg ldrs gSa fd Data Structure ds lnL; vkil es a Related gks rs gSAa fdlh Hkh Program dks nks dlkSfV;ks a ij vPNk ;k cqjk dgk tk ldrk gS% Program ds Execution }kjk fy;k tkus okyk le; vkSj Program }kjk Memory esa fy;k tkus okyk LFkkuA ;fn Program Execute gksus esa dkQh le; yxkrk gS] rks Program dks vPNk ugha dgk tk ldrkA lkFk gh ;fn Program Memory es a dkQh vf/kd LFkku ys rk gS] rks ;s Program dh deh gSA ,d vPNk Program Memory es a de ls de LFkku ys rk gS vkSj de ls
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
de le; es a vPNk ls vPNk ifj.kke iznku nku djrk gSA ge ,d mfpr Data ,d ljy o mfpr rjhdk viuk dj ;s nksuks u aks t:jrsa iw jh dj ldrs gSaA
Structure
dk iz;ksx djds ;kuh
Data Structures Data dks Organize djus ds dbZ rjhds gks ldrs gSaA Data dks Organize djus ds Logical ;k Mathematical Model dks Data Structure dgk tk ldrk gSA ge fdl Data Structure dks Choose djs a ;s ckr nks rF;ks a ij fuHkZj djrh gS% 1
Structure bruk l{ke gksuk uk pkfg, fd og mlh rjg ls Logically Data ds fofHkUu Elements ds chp Relationship iznf”kZr dj lds ftl rjg ls okLrfod thou es a fofHkUu Data Items vkil es a Related gks rs gS aA
2
Data Structure bruk ljy gksuk pkfg, fd dksbZ bZ Hkh Programmer Language es a Coding fy[k dj Data dks vklkuh ls Process dj ldsA
fdlh Hkh Computer
Linear Data Structure tc fdlh Data Structure ds lHkh Items ,d Continuous Memory Locations ij miyC/k gks a] rks bls Linear Data Structure ;k Linear List dgrs gS aA tSls fd ,d Array ds lHkh Elements yxkrkj Memory Locations ij miyC/k jgrs gS aA fofHkUu Memory Locations ij miyC/k fofHkUu Data Items ds chp Relationship Represent djus dk ,d rjhdk ;s gS fd ge Array dk iz;ksx djs aA Array ,d Linear rjhds es a fofHkUu Data Items ds chp ds Relation dks ,d Linked List ds :i Data Structure gSA nw ljs esa Represent fd;k tkrk gSA bl rjhds ds Data Structure es a ge Linked Lists dk iz;ks ;ksx djrs gS aA Non-Linear Data Structure tc fdlh Data Structure es a lHkh bdkbZ;ka ,d Continues Memory Locations ij miyC/k uk gks a] rks ;s ,d Non-Linear Data Structure dgykrk gSA Non –Linear –Linear Data Structures ds :i es a ge Trees o Graphs dk iz;ksx djrs gSAa fdlh Hkh Data Structure ij ge fuEu fØ;k,a dj ldrs gS a& //================================================================
1 2 3 4 5 6
ubZ bdkbZ tksMukA MukA fdlh bdkbZ dks Delete djukA Processing ds fy;s gj bdkbZ ij Move djukA fdlh eku dks lHkh bdkbZ;ks ; aks es a [kkstukA tukA bdkbZ;ks ; aks dh Sorting djukA nks Structures dks tksM dj ,d Structure cukukA
//================================================================
tc ge fdlh Data Structure dks Choose djrs gS a rc fdlh Data Item ds lkFk fdl izdkj dkj ls izfØ;k djuh gS] ;s rF; ml Data Structure ij fuHkZj djrk gS fd geus fdl izdkj dk Data Structure dkj ds Operations djuk Choose fd;k gSA Array ,d lcls ljy Data Structure gS ftl ij fofHkUu izdkj dkQh vklku gksrk gSA Array dk iz;ksx rc fd;k tkrk gS tc Data ds Permanent Collection ij fofHkUu Operations djus gks rs gS aA D;ks afd fd Array dh Size ,d gh ckj esa Set djuh iMrh gS blfy, bles a
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
tks Hkh Data gks rs gSa os Permanent gks rs gS aA ys fdu fdu tc Data rc ge Array ds LFkku ij Linked List dk iz;ksx djrs gSaA
Structure
dh Size
Changeable
gks rh gS
Algorithm : Time – – Space Tradeoff and Complexity fdlh leL;k ds lek/kku dks izkIr djus ds fy, fofHkUu Steps dh ,d Well Defined List dks Algorithm dgrs gS aA Data dks Efficiently Process djus ds fy, ,d Efficient Algorithm dh vko”;drk gks rh gSA dksbZbZ Algorithm fdruk Efficient gS ;kuh fdlh leL;k ds lek/kku ds fy, Algorithm fdl rjg fy[kk x;k gS vkSj Algorithm es a fy[ks x, Steps fdruh Efficiently Data dh Processing djrs gS]a bls nks rF;ksa Time o Space ds vk/kkj ij r; fd;k tkrk gS A gj Algorithm es a Data ij fofHkUu rjhds ls Processing dh tkrh gSA bl fy, fy, ge ges a”kk ”kk Data dks bZ Algorithm fdruk Process djus ds fy, lcls Efficient Algorithm dks Use ugha dj ldrsA dksbZ Efficiently Data ij Processing djsxk xk ;s ckr dqN vU; rF;ksa ij Hkh fuHkZ j djrh gSA tSlfd fs d ge fdl izdkj ds Data ij Processing dj jgs gS a vkS j Data ij fofHkUu Operations djus ds fy, fdrus Steps ysusus iMrs gSaA Time – Space Tradeoff Use fd, tk jgs Data Structure ij fuHkZj djrk gSA ;kuh ;fn ge Data dks Store djus ds fy, Space c
us ds fy, ge ,d mnkgj.k ysrs gS aA ekuyks fd ,d File es a fofHkUu Students dh Information gS aA File dks Name Wise Sort djds vkS j ’k uke Binary Searching Algorithm dks Use djds ge cgqr Efficient rjhds ls bl File es a ls fdlh fo”ks’k ds Record dks iz kIr ldrs gSAa ys fdu fdu ;fn ges a fdlh Student dk Serial Number fn;k x;k gks vkSj gesa ml Serial Number okys Student ds Record dks Search djuk gks rks ge Binary Searching rjhds dks Use djds Record dks ugha [kkst ldrs gSaA D;ks afd fd Binary Searching Algorithm dks Use djus ds fy, ges a Sorted Records dh t:jr gksrh gS vkSj fdlh File ds fofHkUu Records dks ;k rks Name Wise Sort djds j[k ldrs gSa ;k Serial Number ds vuq lkjA ge Name o SR_No nksuks u aks dks ,d lkFk Sort djds ugha j[k ldrsA blfy, ;fn ges a SR_No ds vuqlkj fdlh Record dks [kkstuk tuk gks rks gesa File ds gj Record dks fdlh veqd SR_No ds fy, Check djuk gksxkA ;fn Search dh tkus okyh File es a dkQh vf/kd Records gks a rks bl rjg dh Searching es a cgq r Time yxsxkA bl leL;k dk ,d lek/kku ;s gks ldrk gS fd ge ,d vkSj File cuk, vkSj mls Serial Number Wise Sort djds j[ks aA ysfdu ,lk djus ij leku izdkj ds Data dh nks File cu tk,axh ftlls Memory esa nqxquk Space Use gksxkA xkA blfy, bl rjhds dks Hkh ,d Efficient rjhdk ugha dgk tk ldrkA bl leL;k ds lek/kku ds :i es a ge ,d rjhdk vkSj viuk ldrs gS aA ge Main File dks SR_No Number ds vuqlkj Sort dj ns rs gSa vkSj ,d vkSj Array ys rs gSa vkSj mles a ds oy nks Columns ,d uke ds fy, o nw ljk Pointer ds fy, ys rs gS aA bl Array dks Name Wise Sort dj ys rs gS aA bl Array ds gj SR_No dk ,d Pointer Main File ds fdlh fd nwljs Array ds fy, Extra Space Use gks jgk gS Record dks Point djrk gSA bl rjhds esa gkykafd ysfdu fdu fQj Hkh bl Array esa ds oy nks Fields gS a] blfy, bl rjhds es a de ls de Space Use gksxkA xkA bl rjhds ds Algorithm dks ge ,d Efficient Algorithm dg ldrs gSAa
fdlh Algorithm dh Complexity ,d Function gksrk gS tks fdlh Input Data ds vk/kkj ij Data dh Processing es a yxus okyk le; ;k Space ;k nksuks u aks dks n”kkZrk gSA ;kuh fdlh Algorithm dks Execute gksusus esa fdruk le; yxsxk xk vkSj og Algorithm Memory esa fdruk Space ysxk] bu nksu aks ;k nksuks u aks es a ls fdlh ,d ckr dks n”kkZus ds fy, ge ftl Function dks Use djrs gS]a og Function crkrk gS fd dksbZbZ Algorithm fdruk Complex gS vkS j fdrus le; es a fdlh Data dh Processing djsxk rFkk Data dh
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Processing ds fy, fdruk Space Use djsxkA bu Functions }kjk ge Mathematically gS a fd dksbZ Algorithm fdlh vU; Algorithm dh rqyuk yuk es a fdruk Efficient gSA
;s tku ldrs
Computer Science es a Algorithms dks Analyze djuk ,d cgq r gh cMk o tfVy dke gSA fdUgh yuk djus ds fy, gekjs ikl dqN Criteria gksuk uk cgqr t:jh gksrk gS] ftlls ge irk yxk Algorithms dh rq yuk lds a fd dksbZbZ Algorithm fdruk Efficient gSA ;fn fdlh Data Structure es a n Data gks a rks Algorithm M ds Input Data dh Size n gksrh gSA Input Data dh Size fdlh Hkh Algorithm dk igyk Criteria gks rk gSA ge fdlh Algorithm ls fdl izdkj ds Steps dk iz;ks ;ksx djds Data Process djrs gSa] mu Steps dh la[;k [;k fdlh Algorithm dh Efficiency Kkr djus dk nw ljk Criteria gks rk gSA ;kuh dksbZbZ Algorithm fdruk Efficient gS] ;s Input Data o Data dks Process djus ds fy, Use fd, tkus okys Steps dh la[;k [;k ;kuh Comparisons ij fuHkZj djrk gSA
dksbZbZ Algorithm fdlh leL;k dk lek/kku iznku djus ds fy, fdrus le; o Space dk mi;ksx djrk gS] bu nksu aks rF;ks a ds vk/kkj ij ml Algorithm dh Efficiency dk irk pyrk gSA ekuyks fd M ,d Algorithm gS vkS j mlds Input Data dh Size n gSA fdlh Searching ;k Sorting ds Algorithm es a ftrus Operations ds ckn Data Process gks rk gS] mu Operations dh la[;k [;k ds vk/kkj ij Algorithm ds Time dk irk pyrk gSA tSls ekuyks fd ,d File es a 1000 Records gS a vkSj mu esa ls fdlh fo”ks’k’k uke ds Record dks izkIr djuk gS] rks Algorithm dks okafNr fNr Record izkIr djus ds fy, vf/kdre 1000 Comparisons djus iM ldrs gSAa bu vf/kdre 1000 Comparisons es a yxus okys le; dks Algorithm }kjk Use fd;k tkus okyk le; dgrs gS a vkS j bu 1000 Comparisons es a Algorithm ftruh Memory dks Use djrk gS] og Memory fdlh Algorithm }kjk Use dh tkus okyh Space gks rh gSA fdlh Algorithm M dh Complexity Kkr djus ds fy, ,d Function f(n) dk iz;ksx fd;k tkrk gSA ;s Function fdlh Algorithm dh Complexity iznku djrk gS tgka n Input Data dh Size gSA mnkgj.k ds fy, fdlh File esa ds oy 1 Record gS rks ml Record ls fdlh uke ds Record dks Search djus ij Algorithm dh Complexity de gksxh xh tcfd mlh File esa ;fn 100 Record gks a rks Use gksusus okys fNr Record iw jh File esa dgha izkIr uk gks rks Algorithm Algorithm dh Complexity vf/kd gksxhA ;fn okafNr dh Complexity vuUr gksxhA ekuyks fd tks Record Search fd;k tk jgk gS og File es a igys LFkku ij gh miyC/k gks rks Algorithm dh Complexity fcYdqy de gksxh xh vkSj Algorithm dks Best Case Algorithm dgk tk,xkA ;fn Search fd;k tkus okyk Record File ds e/; es a gks rks Algorithm dks Average Case Algorithm dgk tk,xk vkS j ;fn tks Record Search fd;k tk jgk gS og Record iw jh File esa dgha uk gks rks ,ls Algorithm dks Worst Case Algorithm dgk tkrk gSA fdlh Worst
Case Algorithm
Operations djuk iMrk gS] dks 100 ckj Comparison
ftrus djuk
esa
Record dks Search djus ds fy, mruh ckj Comparison dk File es a Records gSaA ekuyks fd File esa 100 Record gS a rks Algorithm iM ldrk gSA bls ge Mathematically fuEukuqlkj iznf”kZ r dj ldrs
gS a& C(n) = n
tgka
C = Comparisons dh la[;k [;k gS Algorithm dh Worst Case Complexity Complexity
vkS j n = Input Data dh Size gSA fdlh Linear esa C(n) = n gks rh gSA
Search
Average Case Algorithm esa fdlh Data ds gj Location ij feyus dh lEHkkouk 1/n gks rh gS tgka n [;k gSA ;kuh ;fn fdlh Data Structure esa n Data Items gks a rks Data 1 ls ysdj dj n Data Items dh la[;k rd es a fdlh Hkh LFkku ij gks ldrk gSA blfy, fdlh Data Item dks fdlh List es a [kkstus tus ds fy, Algorithm dks dqy n Comparisons djus iM ldrs gSAa bls ge fuEukuqlkj Mathematically n”kkZ ldrs
gS a& http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
//================================================================ C(n) = 1 X 1/n + 2 X 1/n + ... n X 1/n = ( 1 + 2 + ... + n ) X 1/n = n( n + 1 )/2 X 1/n = n + 1/2 //================================================================
bl Probability Equation ls ge ns[k [k ldrs gS a fd fdlh Data ds gks rh gS tgka n List ds dqy Data Items dh la[;k [;k gSA
List
es a feyus dh lEHkkouk yxHkx n/2
Algorithms fdlh leL;k dk lek/kku Computer }kjk izkIr djus ds fy, ges a ,d fo”ks’k’k Øe es a fofHkUu Steps Use djus gks rs gSaA Steps dh ,d Well Defined List ftlds vk/kkj ij fdlh Hkh Computer Language es a Program Create djds fdlh Problem dks vPNh rjhds ls Solve fd;k tk lds] Algorithm dgykrk gSA nw ljs “kCnks a esa dgs a rks ge dg ldrs gSa fd fdlh leL;k ds lek/kku ds fy, ftu Steps dks Use fd;k tkrk gS] mu Steps dks ;fn ,d fuf”pr Øe esa ljy Hkk’kk es a fy[k fy;k tk ,] ,] rks bu Steps dh List dks Algorithm dgk tk ldrk gSA Algorithm dk gj Step ;s crkrk gS fd dc vkSj fdl dke ds ckn D;k dke gks jgk gSA Algorithm fdlh Problem ds Solution dk ,d Specification gks rk gS ftlds vk/kkj ij fdlh leL;k dks Solve fd;k tkrk gSA fdlh Algorithm dks lhfer Instructions dh ,d Sequence ds :i es a ns[kk [kk tk ldrk gS ftles a fuEUk xq.k gks rs gS a& 1
Algorithm
“kq: gksusus ls igys mls dqN Initial eku iznku fd, tkrs gSaA bu ekuks a dks tkrk gS vkS j bUgha Input ij dksbZbZ Algorithm Processing Processing djrk gSA
2
Algorithm
3
Algorithm
Input
dgk
ds fofHkUu Steps brus ljy o le>us ;ksX; X; gks rs gS a fd ml Algorithm dk iz;ksx djds ge fdlh Hkh Computer Language esa ml Algorithm ds vk/kkj ij Program Create djds fdlh leL;k dk lek/kku izkIr dj ldrs gS aA
dk gj Step bruk Clear gksuk pkfg, fd dksbZbZ Hkh O;fDr ml Algorithm ds vk/kkj ij ,d lhfer le; es a ml leL;k dk lek/kku iz kIr dj ys ftlds fy, Algorithm dks fy[kk x;k gSA
4 fdlh Algorithm }kjk fdlh leL;k ds lek/kku ds fy, fy[ks x, lHkh Steps ,d lhfer le; esa iw js gksus pkfg,A dbZ ckj fdlh leL;k ds lek/kku ds fy, Repetitive Steps Use fd, tkrs gS aA ;s Steps ,ls gksus pkfg,a fd lhfer le; esa leL;k dk lek/kku iznku dj lds a ;kuh Loop Infinite ugha gksuk uk pkfg,A 5 ,d Algorithm dk de ls de ,d ;k ,d ls vf/kd Output gksuk pkfg,A Steps dk dksbZbZ Hkh ,lk lewg tks fdlh izdkj dkj dk dksbZbZ Result Provide uk djrk gks] mls Algorithm ugha dgk tk ldrkA
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Analysis of Algorithm tc Hkh ge dksbZbZ Algorithm fy[krs gS a rks ;s t:jh gks tkrk gS fd ge ;s Analyze djsa fd gekjs }kjk fy[kk x;k Algorithm fdruk Efficient gSA Algorithm ds Analysis dk igyk rjhdk ;s gS fd ge ;s Check djs a fd Algorithm lgh fy[kk x;k gS ;k ughaA blds fy, ges a fuEu dke djus gks rs gSa&
1
Algorithm
dh Tracing djukA ;kuh Algorithm ds gj Step dks gksuk pkfg, og ogha gks jgk gS ;k ughaA
2
Algorithm
Check
dh Reading djukA ;kuh ;s irk yxkuk fd Algorithm
djuk fd tks dke tgka
Logically Correct
gS ;k
ughaA 3
Algorithm dh Implementing o Testing djukA ;kuh Algorithm ds vk/kkj ij fdlh Hkh Programming Language es a Program cukuk rFkk Check djuk fd Program lgh Output iznku dj jgk gS ;k ughaA ;k fQj Mathematical Techniques }kjk Algorithm dh Correctness dks Prove djukA
rjhdk ;s gS ge Algorithm dks Simplest Form esa Create djs aA ;fn Algorithm ds Analysis dk nw ljk Algorithm dks Simplest Form es a fy[kk x;k gks rks mls Implement djuk ;kuh mlds vk/kkj ij Program Create djuk o ml Algorithm ij vU; izdkj ds Analysis djuk ljy gksrk gSA fQj Hkh fdlh leL;k dks Solve djus ds fy, Use fd;k tkus okyk ljy o lkQ&lqFkjk rjhdk dbZ ckj dqN T;knk vPNk rjhdk ugha gks rk gSA ,lk rc gksrk gS tc Use fd;k tkus okyk ljy o lkQ&lqFkjk F kjk rjhdk ;k rks dkQh vf/kd Memory dk mi;ksx djrk gks ;k Solution iznku djus esa dkQh T;knk le; yxkrk gksA bl fLFkfr esa ;s t:jh gks rk gS fd ;s Analyze fd;k tk, fd tks Algorithm fdlh leL;k ds lek/kku ds fy, fy[kk x;k gS og de ls de fdruk Time o Space Use djrk gSA mnkgj.k ds fy,] ;fn fdlh Company esa 120 Employees gSa vkSj gj Employee ds Record dks Memory es a Load gksus us es a 3 feuV yxrs gSa rks bl Algorithm dks Use ugha fd;k tk ldrk D;ks afd fd ;fn fdlh fnu Company ds lHkh Employees dks Access djuk gqvk] rks lHkh Employees ds Records dks Memory es a Load gksus es a gh 4 ?k.Vs yx tk,ax]s fQj gj Record dh Processing es a rks vkSj Hkh vf/kd le; yxsxkA blfy, dksbZ Algorithm fdruk vPNk gS bls Time o Space ds vk/kkj ij gh ukik tk ldrk gSA
Rate of Growth dksbZbZ Algorithm Perform gksusus es a fdrus le; dk mi;ksx djsxk ;s Analyze djus dk dksbZbZ lk/kkj.k rjhdk ugha gSA fdlh Hkh Algorithm ds Time Requirement dks izHkkfor djus okyh lcls igyh Complexity rks ;s gS fd dksbZ Algorithm fdl Computer ij Perform gks jgk gS] ml Computer ij gh Algorithm ds Perform gksus us dk Time fuHkZj gksxkA ekuyks ;fn ge ,d gh Algorithm dks Pentium III Processor okys CPU ij Execute djrs gS a vkSj mlh Algorithm dks Pentium IV ds Processor ij Execute djs a] rks nksu aks Computer ij Algorithm ds Perform gksusus ds le; esa vUrj jgsxkA xkA ;kuh lcls igys rks dksbZbZ Hkh Algorithm fdruk le; ysxk ;s ml Computer dh Speed ij fuHkZj djrk gS ftl ij Algorithm dks Use fd;k tk jgk gSA
ds Perform gksus ds Time dks izHkkfor Hkkfor djus okyh nw ljh Complexity Input Data Items dh la[;k [;k ij fuHkZj djrh gSA mnkgj.k ds fy, ;fn fdlh Array es a 100 Data Elements dks tksMuk Muk gks rks de le; yxsxk xk tcfd ;fn Array es a 10000 Data Elements gks a] rks mu lHkh dh tksM djus esa 100 Data dh rqyuk esa vf/kd le; yxsxkA ifj.kkeLo:i dksbZbZ Algorithm Perform gksusus es a vuqekur% fdruk le; ysxk] bls Input Data Size ds Qyu ds :i es a Express fd;k tk ldrk gSA mnkgj.k ds fy, ;fn fdlh Array Algorithm
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
esa
Data Items dh la[;k [;k n gks rks Algorithm }kjk n Data T(n) o Space S(n) ds Qyu ds :i es a Express fd;k
dh Processing es a yxus okys le; dks Time tk ldrk gS] tgka T o S Input Data n ds
Qyu gSaA blls igys fd ge fdlh Algorithm dks Analyze djds mldh Efficiency Kkr djs a] dqN Functions dks le>uk Bhd jgsxk] ftudk iz;ks ;ksx x T o S dks Express djus ds fy, fd;k tkrk gSA ;s dqN Standard Functions gS a tks Input Data Item n dh Size ds vk/kkj ij Algorithm }kjk fy;k tkus okyk le; Kkr djus ds fy, Use fd, tkrs gS aA mnkgj.k ds fy, eku yks fd fdlh Array esa 16 Data Items gSAa bu 16 Data Items dks vyx&vyx rjg ls vyx&vyx dkeksa ds fy, Process djus ds fy, vyx&vyx Algorithms dh t:jr gks rh gSA ;fn bu 16 Items ij Processing djus ds fy, ge f(n) = 2n Qyu dk iz;ksx djsa rks ges a Array ds 16 Elements dks Process djus ds fy, de ls de 216 Operations djus iMs axs x]s ;kuh ges a dqy 65536 Operations djus gks axAs ;fn bl Qyu dk Graph cuk;k tk,] rks cuus okyk Graph dkQh rsth th ls c
n
n log2 n
n2
n3
2n
fdlh Hkh Algorithm dks Analyze djds ;s irk fd;k tkrk gS fd Algorithm dh Complexity fdl Qyu ds vuqlkj Grow gks jgh gSA ges a ;gh dksf”k”k f”k”k djuh pkfg, fd fdlh Hkh Algorithm dh Complexity Linear Øe es a c
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Time Analysis fuEu Algorithm }kjk fdlh Array ds N Elements dk TkksM fd;k tk ldrk gS& //================================================================== SUMMETION(LA, SUMMETION(LA, N) Here LA is a Linear Array and N is the size of LA. 1 SUM = 0, LB = 0, UB = N-1 [ Initializatio n ] 2 REPEATE STEP 3 WHILE I <= UB STEP I = I + 1 3 SUM = SUM + LA[I] [ Sum the Values of Array’s All Elements ] 4 EXIT [ Finish ] //==================================================================
tSlkfd geus igys crk;k fd fdlh Hkh Algorithm dks Perform gksusus es a fdruk le; yxsxk xk ;s Kkr djuk dkQh eqf”dy gSA blfy, ge Algorithm dh Complexity dks Data Items dh Size ds Qyu ds :i es a gh Kkr dj ldrs gSAa Algorithm ds Time dks ge fdlh Algorithm }kjk Perform gksusus okyh Comparisons la[;k [;k ds vk/kkj ij Kkr djrs gSAa dksbZ Algorithm Perform gks rs le; dqy fdrus Operations djrk gS] mUgha Operations dh la[;k [;k dks ge Algorithm ds Perform gksusus ds Time ds :i esa eku ys rs gS aA ;kuh ftrus vf/kd Operations Algorithm }kjk Perform gksrs gSa ml Algorithm dks Perform gksusus esa mruk gh vf/kd le; yxrk gSA Time Algorithm esa ekuyks fd Data Item dh la[;k [;k n = 10 gS rks nlks a la[;kvks [;kvks a dks tksMus Mus ds fy, bl Algorithm es a dqy 10 Operations gks rs gSAa bl fLFkfr esa bl Algorithm dks us esa dqy 10 Operation djus iMrs gS a rks bl Algorithm dh Complexity dk Qyu f(n) = n Perform gksus gksxkA xkA ;kuh bl Algorithm dks Perform gksusus es a ;fn Data Item dh la[;k N gS rks dqy Operation dh la[;k [;k Hkh N gksxh vkS j gj Operation es a 1/N le; yxrk gS vr% dqy le; Hkh N gh yxsxkA xkA ekuyks fd ;fn Array ds izFke Element dks nw ljs Element ls tksMus Mus es a ,d lsd.M d.M yxrk gS rks Data Item dh la[;k [;k 10 gksusus ij dqy nl ckj tksM gksxh xh vkSj yxus okyk le; 10 lsd.M d.M gksxkA
Complexity ( Big O Notation ) nks Algorithms esa ls dkSulk Algorithm vf/kd Efficient gS ;s Analyze djus ds fy, ges a nksuks u aks Algorithms ls izkIr gksus us okys Results dks Compare djuk gks rk gSA ge nks Algorithms ls izkIr gksusus okys Results dks Compare dj ldsa blds fy, ges a “O” Notation dks tkuuk t:jh gSA
dksbZbZ Algorithm fdrus Operations djus ds ckn Required dke dks iw jk djrk gS] ;s tkuus ds fy, ge dqN Standard Function dk iz;ks ;ksx djrs gSa tks fd fuEukuqlkj gSa& log2 n
n
n log2 n
n2
n3
2n
;s lHkh Functions ¼ Qyu ½ fdlh Algorithm dk vk;ke Kkr djus ds fy, Use gksrs gS aA ;kuh n2 ls n3 dk vk;ke vf/kd gks rk gSA ;fn dksbZbZ ,d Algorithm n2 Operations ds ckn ges a Required Results iznku nku 3 djrk gS tcfd nw ljk Algorithm n Operations ds ckn ges a Required Result Provide djrk gS] rks igys okys Algorithm ls nw ljk okyk Algorithm vf/kd Complex gksxkA xkA ;s lHkh Function ,d fuf”pr Øe ds vuq lkj Input Data n ds fy, vk;ke iznku djrs gS aA fofHkUu Functions tks vk;ke iznf”kZr djrs gS a mu lHkh vk;ke iznf”kZr djus okys Functions dks Handle djus ds fy, ,d Notation dks Develop fd;k x;k gSA ,d Function f(n) dks O(g(n)) ds :i es a ifjHkkf’kr fd;k tk ldrk gSA ;kuh bls f(n) = O(g(n)) fy[k ldrs gS a vkSj bl Qyu dks g(n) dk Øe dgk tkrk gSA ;kuh ;fn fuEukuq lkj n0 o c Positive Constant gks a&
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
| f(n) | <= | g(n) |
tcfd lHkh n > n0
rks ge bls “O” Notation ds vuqlkj fy[k ldrs gS aA tSls fuEu Qyuks a dk “O” Notation fuEukuqlkj fy[kk tk ldrk gS& 100 n5 200n3 + 50n2 + 20n1 + 544n0 1 + 2 + . . . + (n-1) + n = n(n+1)/2 = n2 + O(n) 3223
dk “O” Notation O(n5) gksxkA xkA 3 dk “O” Notation O(n ) gksxkA dk “O” Notation O(n2) gksxkA dk “O” Notation O(1) ;k O(n) gksxkA
ljy “kCnks a esa dgsa rks ge dg ldrs gS a fd O(g) Qyuksa (Functions) dk ,d ,lk lew g gks rk gS tks fd g ds vk/kkj ij Increase ;k Grow gks rk gS tgka Qyu g Qyu O(g) dk Upper Bound gSA ge O(g) ds fofHkUu Qyuksa ds vk/kkj ij fofHkUu Algorithms dh Complexity Kkr dj ldrs gSa vkSj nks vyx&vyx Algorithms dh Efficiency dh vkil esa rqyuk yuk djds irk yxk ldrs gSa fd dkSulk Algorithm vf/kd Efficient ;k de Complex gSA ;s Qyu Computer ;k Programming Language ij fuHkZj ugha gksrs gSa blfy, fdlh Algorithm dks fcuk Implement fd, gq, ;kuh Algorithm ds vk/kkj ij fcuk Program cuk, gq, gh bu Qyuksa }kjk ge ;s tku ldrs gS a fd dksbZ Algorithm fdruk Complex gSA Properties of “O” Notation
fdlh Hkh “O” Notation dh dqN
General
fo”ks’krk,a ’krk,a gks rh gS a ftUgs a ge fuEukuq lkj le> ldrs gS a&
1 fdlh Hkh Algorithm dks tc Mathematically Represent fd;k tkrk gS rks mlds ftrus Hkh Constant Factors gks rs gSa mUgs a Ignore fd;k tk ldrk gSA mnkgj.k ds fy, ;fn fdlh Array es a N Data Elements gS a vkS j dksbZ bZ Algorithm Array ds lHkh Elements dks Process djrk gS tcfd N dk eku 0 ls vf/kd gS rks bl Algorithm dh Complexity O(n) gksxhA xhA ;kuh For All N > 0 , N f is O(n)
mnkgj.k ds fy, xz2 o yn2 nksuksa dh Complexity leku gS vkSj nksuksa dks O(n2) gh fy[ks axsA 2
n dh Higher Power Grow gks rk gSA ;kuh
¼ mPpre ?kkrkad ½
200n3 + 50n2 + 20n1 + 544n0
Lower Power
“O” Notation
ds :i es a
¼ fuEu ?kkrkad ½ ls vf/kd rsth th ls
dk “O” Notation O(n3) gksxkA
bl mnkgj.k es a ns[k ldrs gS a fd Qyu n0 Hkh gS vkSj n3 Hkh ysfdu bldk “O” Notation O(n3) gh gS D;ksfd afd ;s mPpre ?kkrkad gS vkSj vU; lHkh ?kkrkad aks dh rqyuk es a bldk eku cgqr gh T;knk rs th th ls Grow gksxk vkSj ;s vU; ?kkrkadks dks dh rqyuk yuk esa cgqr gh T;knk Operations dks Represent djsxk] xk] ftlls vU; ?kkrkadks d aks ds Operations dh la[;k [;k dks Ignore fd;k tk ldrk gSA 3 dqy Operations ds ;ksx ds c
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
an3 + bn4 + cn2 + dn1 Operations gks rs gS a rks bl Algorithm dh Complexity bn4 bl Algorithm ds Operations dks “O” Notation ds :i es a
ds c
gksxkA 4 ;fn Qyu f Qyu g dh rqyuk yuk es a vf/kd rsth th ls Grow gks rk gS vkS j Qyu g Qyu h dh rqyuk es vf/kd rsth th ls Grow gks rk gS rks Qyu f Qyu h dh rqyuk esa Hkh vf/kd rsth th ls c
mnkgj.k ds fy, IF f is O( n2 ) and h is O( log n ) then fh is O( n2 log n )
6
Exponential
Qyu Power Qyu dh rqyuk es a vf/kd rsth th ls c
nk is O(bn), tcfd b
ds lkjs eku 1 ls cMs gksa vkSj k dk eku 0 ;k 0 ls cMk gksA ;kuh
nk is O(bn), For all b > 1 ; k >= 0
mnkgj.k ds fy, n4 is O(2n), and n4 is O(exp(n))
7
Logarithms Powers
dh rqyuk es a cgqr gh /kheh xfr ls c
Logb n is O(nk) for all b > 1 ; k > 0
mnkgj.k ds fy, log2 n is O(n0.5) fdlh Algorithm dks Analyze djrs le; gekjs lkeus nks lcls cMh leL;k,a gks rh gSa% CPU Time CPU dh Speed eq[; :i ls Algorithm }kjk gh izHkkfor ugha Speed dks izHkkfor djrs gS aA bues a ls dqN rF; fuEukuqlkj gSa &
gksrh gS cfYd dqN vU; rF; Hkh CPU dh
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
1 ge tks
Computer Use dj jgs gS a ml Computer ds CPU dh Actual Speed D;k gS vkSj ml Computer ij fdruk Load gSA ftl Computer es a ftrus vf/kd Softwares Installed gksrs gS a] Computer mruk gh vf/kd Loaded gks rk gSA
2 ge dkSulh Programming Language Use dj jgs gS a vkS j dkSulk Compiler Use dj jgs gSa bl ij Hkh Algorithm ds Perform gksusus dh Speed fuHkZ j djrh gS A tSls ;fn ge ,ls Compiler dks Use dj jgs gSa tks fd Directly Computer ds fofHkUu Hardware dks Access djus es a l{ke gS rks Algorithm vf/kd rsth th ls Perform gksxkA “C” ,d ,lh gh Language gS ftles a ge Computer ds fdlh Hkh Hardware dks Directly Access dj ldrs gS aA tcfd Visual Basic es a ;fn Algorithm dks Perform djus ds fy, Program fy[kk tk,xk rks ml Program dh Speed “C” ds Program dh Speed ls de gksxhA xhA 3 dqN vU;
Factors Hkh gks rs gS a tks Algorithm dh Performance dks izHkkfor djrs gSaA tSls ;fn Data Structure ds :i es a Array dks Use fd;k tkrk gS rks ges a ges a”kk ”kk Algorithm esa ;s Check djuk gks rk gS fd Array esa Data Insert djus ds fy, Space gS ;k ughaA ;kuh Array dh Bounding dks Check djuk t:jh gks rk gS vU;Fkk Algorithm fdlh vU; Program ds Data dks Corrupt dj ldrk gSA fdlh Array dh Indexing djus es a ;k fdlh Record dks Access djus es a tks Extra le; yxrk gS og Algorithm dh Performance dks izHkkfor djrk gSA tc ge gekjs Program es a cgqr ls Procedures ;kuh Functions Create djrs gS]a rks gj Function ds Call gksus ij Program Control ,d LFkku ls nw ljs LFkku ij Jump djrk gSA bl Jumping es a Hkh dqN le; O;FkZ gks rk gSA ;s le; Hkh Algorithm ds Performance ij vlj djrk gSA
Input / Output
ds Algorithms ifjHkk’kk ds :i es a lHkh Input Data ij Processing ds fy, leku le; ys rs gS aA ysfdu T;knkrj Algorithms Constant Time ugha gks rs gS aA ;kuh lHkh Data dh Processing es a leku le; u gha gha ysrs gSAa bl fLFkfr es a ge ,d fuf”pr vad ds :i esa fdlh Algorithm dh Efficiency dks ifjHkkf’kr ugha dj ldrs gS aA blfy, ges a Algorithm dh Efficiency dks Input Data dh Size n ds Qyu ds :i es a gh ifjHkkf’kr djuk iMrk gSA Constant Time
Measure djuk pkfg, igyh leL;k dk lek/kku ;s gS fd gesa Algorithm dh Efficiency dks Analytically Measure uk fd Experimentally, D;ks afd nks vyx Computer ij leku Algorithm Hkh vyx Time es a Perform gksxkA xkA vU; “kCnks a es a dgs a rks ges a Algorithm dks mldh Efficiency o ml Algorithm dks izHkkfor djus okys rRoks a ds vk/kkj ij ifjHkkf’kr djuk gksrk gSA lkekU;r;k ge fdlh Algorithm dh Efficiency Kkr djus ds fy, fuEu es a ls fdlh ,d dks Measure djrs gS& a
1
Numerical Algorithms
ds fy, ge dqy Addition, Subtraction, Multiplication vkfn dh la[;k [;k
Kkr djrs gSAa 2
Searching
;k Sorting ds Algorithm es a ge dqy Comparisons dh la[;k [;k Kkr djrs gSaA
3
Assignment Statements
o Parameters ds vk/kkj ij Data
Movement
dh dqy la[;k [;k dks
Kkr djrs gSAa 4 fdlh Algorithm ds fy,
Required
dqy Memory
Space
http://www.bccfalna.com/
dh Limit dks Kkr djrs gSAa
Data Structure and Algorithms with “C” in Hindi
nw ljh leL;k ds lek/kku ds fy, ge N Data Items ds fy, Algorithm dh Efficiency n”kkZus okyk ,d Qyu Kkr djrs gS a ftlls fdlh Algorithm dh Efficiency ;k Complexity dks Represent fd;k tkrk gSA fdlh Algorithm dh Complexity ;k Efficiency dks Kkr djrs le; gesa lcls igys ;s r; djuk gks rk gS fd ge Input dh fdl Property dks Measure djus tk jgs gS aA fdlh Algorithm dh lcls vPNh Property og gksrh gS tks Algorithm ds Efficiency Factor dks izHkkfor djrh gksA ge ;gka ij Algorithm dh Key Property ds :i es a Input Size “kCn dks Use djds Algorithm dks Analyze djs axs xs vkSj Input Size dks Variable N ls Represent djsxs x a sA fQj Hkh ;s t:jh ugha gS fd ge dsoy ,d gh Property dk iz;ksx djs aA ge fdlh Algorithm dh Efficiency dks dbZ Properties ds vk/kkj ij ,d Qyu ds :i es a Express dj ldrs gSAa ysfdu dsoy ,d gh Property ds vk/kkj ij fdlh Algorithm dh Efficiency dks Express djuk dkQh ljy rjhdk gks rk gS rFkk ,d gh Property dks lHkh Properties ds :i es a Represent fd;k tk ldrk gSA blh rjhds dks lcls T;knk Use fd;k tkrk gSA mnkgj.k ds fy, fdlh List ds fofHkUu Elements dks Sort djus ds fy, ftruk le; Use gks rk gS mls List dh Length ds ,d Qyu ds :i esa fy[kk tk ldrk gSA Sorting ds fy, ge ftl Algorithm dk iz;ksx djrs gS a og Typically ,d Quadratic Function gksrk gSA ;kuh TIME(n) = n * n MergeSort
o QuickSort ds Algorithm vf/kd rst gks rs gS aA mudks Qyu ds :i es a fuEukuqlkj fy[kk tk
ldrk gS& TIME(n) = n * log (n)
bl Algorithm dh Length Quadratic ls de ysfdu Linear ls vf/kd gks rh gSA ;s rjhdk vHkh Hkh nw ljh leL;k dk tokc iznku nku ugha dj jgk gSA ekuyks ,d Algorithm fdlh List es a ls fdlh Required eku dks Search dj jgk gSA ge ;s eku ysrs gSa fd tks Hkh eku Search fd;k tk jgk gS og ges a”kk ”kk List esa miyC/k gks rk gSA ,lk dksbZbZ eku Search ugha fd;k tkrk tks fd List es a miyC/k gh uk gksA bl fLFkfr es a Algorithm ge s”kk ”a kk Successful gks rk gSA vc bl Algorithm dh Speed dks izHkkfor djus okyk Factor og LFkku gS tgka ij Search fd;k tkus okyk eku iz kIr gks rk gSA ;fn Algorithm ogka ls “kq: gks rk gS tgka ij Search fd;k tkus okyk eku miyC/k gS rks Algorithm cgqr gh tYnh lekIr gks tk,xkA tcfd ;fn Search fd;k tkus okyk eku List esa dgha vU; LFkku ij gS] rks Algorithm dks vU; LFkkuks a ij Hkh Search fd, tkus okys eku dks [kkstuk tuk gksxkA bl fLFkfr es a ge tks Qyu ;gka ij iz kIr djuk pkgrs gSa og iw jk ugha gSA ;s Qyu Input Size n ij fuHkZj gSA ;fn Search fd;k tkus okyk Data rqjUr izkIr gks tkrk gS rks ;s Best Case fLFkfr gS ysfdu ;fn Search fd;k tkus okyk Data dkQh Comparisons ds ckn izkIr gksrk gS] rks bls Worst Case fLFkfr dgs axs xsA gekjs bl Algorithm es a Best Case = Constant Time gksxk tcfd Worst Case = Length of List ;k N1 gksxkA Average Case esa Search fd;k tkus okyk Data List es a izFke o vfUre LFkku ds vykok dgha Hkh izkIr gks ldrk gSA vc tc ge nks Algorithms dks Compare djrs gS a rks ges a nks Algorithms ds Qyuks a dks Compare djuk iMrk gSA bl Analysis es a ges a ges a”kk ”kk lko/kku jguk gks rk gS D;ks afd ;s Qyu dbZ LFkkuks a ij ,d nw ljs dks Cross dj ldrs gS aA ;kuh fdlh ,d Input ds fy, igyk Algorithm mi;qDr yxrk gS tcfd fdlh nw ljs Algorithm vf/kd mi;qDr yxrk gSA ;fn ,lk gks rk gS rks bldk Input ds fy, igys ds LFkku ij nw ljk eryc gS fd nksu aks gh Algorithm lHkh Inputs ds fy, ,d nw ljs ls vf/kd mi;qDr ;k Efficient ugha gSaA http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
nks Algorithms dh okLro es a mfpr Comparing djus ds fy, t:jh gS fd gekjs ikl nksu aks Algorithms ds mfpr Qyu gksa vkSj ge ;s irk dj lds a fd nksuks uksa Algorithm fdl Input ds fy, ,d nw ljs dks Cross djrs gSaA iz k;ksfxd fxd :i ls ;s irk djuk cgq r gh eqf”dy dke gSA blfy, ge nksuks u aks Algorithm ds Input dk yxHkx eku iz kIr djrs gSa tgka ij nksuks uksa Algorithms ,d nw ljs dks Cross djrs gS aAa bl izfØ;k dks “Ballpark Estimate” dgk tkrk gSA “Ballpark Estimate” fdlh Algorithm dk yxHkx Complexion gks rk gS ftls Asymptotic Complexity dgk tkrk gSA Asymptotic Complexity fdlh Algorithm dk eq[; Term gks rk gS ftlls fdlh Algorithm ds Qyu dh Limit dk irk pyrk gSA mnkgj.k ds fy, ekuyks fd gekjs ikl nks Algorithms gS%a 1 2
A1 - Efficiency(n) = 29 [ Constant Time ] A2 - Efficiency(n) = 3 + n/2 [ Linear Time ]
tc rd n
= 52 gks rk gS rc rd A1(n) > A2(n) gksrk gSA ;kuh tc n dk eku 52 gksrk gS rc nksuksa Algorithm dh Complexity leku gksrh gSA bl Limit ij nksuks u aks Algorithm ,d nw ljs dks Cross djrs gSaA gkykafd fd ,d cgqr gh NksVh Vh List ds fy, A2 Algorithm dkQh Efficient gS ysfdu fdu ;fn List cMh gks rks A1 Algorithm A2 Algorithm dh rqyuk esa vf/kd Efficient jgrk gSA Asymptotic Complexity ds ihNs ;gh Idea gSA
ekuyks fd ,d Array esa 52 Items ds lkFk 29 Operations djus ij Required dke gks tkrk gSA bl fLFkfr es a nksuks u aks gh Algorithms dks ,d nw ljs ds LFkku ij Use fd;k tk ldrk gSA ysfdu fdu ;fn Data [;k 52 ls de gks rks igyk Algorithm vf/kd Efficient gksxk tcfd ;fn Data Items dh Items dh la[;k la[;k [;k 52 ls vf/kd gks rks nw ljk Algorithm igys dh rqyuk esa vf/kd Efficient gksxkA xkA es a Qyu ds lHkh Lower Order Terms o Constant Multipliers dks Ignore dj fn;k tkrk gS] blfy, lHkh Linear Qyuks a dks “O” Notation es a O(n) fy[kk tkrk gS vkSj lHkh Constant Time Qyu dks “O” Notation es a O(1) fy[kk tkrk gSA ;kuh A1 dh Asymptotic Complexity O(1) gS tcfd A2 dh Asymptotic Complexity O(n) gSA Li’B :i ls ge dg ldrs gS a fd Asymptotic Complexity rHkh mi;qDr gS tc ges a cgqr cMs Input ds lkFk izfØ;k djuh gksA fdlh Application Program esa ges a rc vf/kd lVhdrk ls Analysis djuk iMrk gS tc ge de Input Data ds lkFk izfØ;k dj jgs gksrs gS aA
Asymptotic Complexity Complexity
geus vHkh rd fofHkUu izdkj ds Qyuksa dks ns[kk [kk gSA bu lHkh Qyuks a }kjk ge fdlh Algorithm dks Analyze djrs gSa vkSj Algorithm dh Efficiency ;k Complexity Kkr djrs gS aA Efficiency ;k Complexity dks iznf”kZr djus ds fy, ge Capital Letter “O” dk iz;ksx djrs gS aA fofHkUu izdkj ds Qyuks a dks Represent djus ds fy, ge “O” Notation dk iz;ksx djrs gS aA bl “O” Notation dks Use djds fdlh Qyu dh Efficiency ;k Complexity dks Represent djus dh izfØ;k dks Big – O Notation dgk tkrk gSA tc ge Big – Big – O Notation }kjk fdlh Algorithm dh Complexity ds Qyu dks Represent djrs gS a rc Qyu ds fofHkUu Low – Low – Order Terms, Dominant Terms o Constants Coefficients dks Ignore dj ns rs gS a o ds oy Highest Power ;k Highest Value Represent djus okys Notation dks gh Big – O Notation ds :i es a O;Dr djrs gS aA tSls Efficiency(n) dks ;fn Big – O Notation ds :i es a O;Dr djuk gks rks ge bls ds oy O(n) fy[krs gSAa
Analyzing Algorithms Analysis ds fy, ges a”kk ”kk Simple Statements Sequence dks vk/kkj cukuk pkfg,A lcls igys ;s Note djs a fd Statements dh ,d Sequence tks fd ,d le; es a dsoy ,d ckj Execute gks rh gS] mls Big – Big – http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
O Notation ds :i esa Represent djus ds fy, ges a ds oy O(1) fy[kuk gks rk gSA D;ks afd ,d Statement y xkrk gS lHkh Statements Execute gksusus es a mlh vuqikr es a le; yxk,axsA Execute gksus es a ftruk le; yxkrk mnkgj.k ds fy, ;fn fdlh Data Item dh Size n dks fdlh Loop }kjk fuEukuqlkj Solve fd;k tk
ldrk gS % //================================================================== for(i=0; i
rks bl Loop esa
Statement x ,d O(1) Sequence Statement Complexity n O(1) ;k O(n) gksxhA xhA
;fn gekjs ikl fuEukuqlkj nks
Nested Loop
gS blfy, bl Loop dh Time
gks a rks
//================================================================== for(i=0; i
bl fLFkfr esa Loop i ds gj Iteration es a Loop j n ckj Iterate gks rk gSA ;kuh ;s Nested Loop n * n ckj pysxk blfy, bl Loop es a yxus okyk le; O(n2) ds cjkcj gksxkA xkA fuEu Loop rc rd pyrk gS tc rd fd n dk eku h ds eku ls cMk ;k cjkcj jgrk gS& //================================================================== h = 1; for(i=0; i<=n; i++) { Statement x; h = 2 * h; } //==================================================================
bl Loop dh Complexity 1 + log n ds cjkcj gSA bls ldrs gSAa
Big – Big – O Notation
ds :i es a O( log2 n ) fy[k
;fn Inner Loop Outer Loop ds Index ij fuHkZj gks rks Inner Loop es a j dk eku 0 ls bl fLFkfr es a Loop dh Complexity fuEukuqlkj Kkr dh tk ldrh gS&
n
rd pyrk gSA
//================================================================== for(i=0; i<=n; i++) { for(j=0; j<=i; j++) { Statement x; }
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
} //==================================================================
f( j )
= = = =
0 to n 1 + 2 + 3 + 4 + . . . (n-2) + (n-1) + n n * (n + 1) / 2 (n2 + n)/2
;kuh ;kuh
bl Algorithm dh Complexity dks Big – O Notation ds :i es a ge O( n2 ) fy[k ldrs gS aA ;fn ge fuEukuqlkj fdlh t:jr ds vuqlkj Loop pykrs gS& a //================================================================== h = n; for(i=0; i<=h; i++) { for(j=0; j<=n; j++) { Statement x; } h = h/2; } //==================================================================
rks ;gka Outer Loop esa log2 n Iterations gks axs vkS j Inner Loop dh Complexity O( n ) gksxhA bl fLFkfr esa dqy Complexity O( n log n) gksxhA xhA ;s Complexity igys okys Loop dh Complexity dh rqyuk es a vf/kd Efficient gSA pfy,] vc ge dqN Program ns[krs [krs gSa vkSj mudh Complexity Kkr djus dh dksf”k”k djrs gS aaA gkykafd fd bu Programs dk okLro esa dgha dksbZ mi;ksx ugha gSA ;s dsoy dqN Pattern ek= Create djrs gSAa bu mnkgj.kks a es a Programs dh Efficiency printf() Function ds dqy y Executions dh la[;k ij vk/kkfjr gS tks fd n dk Qyu gSA Example //================================================================== main() { int i, j, n; printf(“Enter printf(“Enter the limit of Pattern”); scanf(“%d”, &n);
for(i=0; i
} } getch(); } //==================================================================
ge ns[k [k ldrs gS a fd nksuksa Loops es a dsoy Inner Loop es a gh Execute gksus okyk Statement gS vkS j ds oy ,d gh Statement gSA gekjs Complexity Qyu ges a ;s crk,xk fd n ds Qyu ds :i esa printf() Function fdruh ckj Execute gksxkA
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
bl iw js Program dh Complexity Outer Loop dh Complexity ds cjkcj gS D;ks afd ;gh ,d Top Level dk Statement gS ftles a printf() Function Use fd;k x;k gSA fdlh Loop dh Complexity dks ge fuEu lw = ls tku ldrs gS a& Complexity of Loop =
( Number of Loop’s Repetitions ) * ( Complexity Complexity of each Iteration )
ge eku ldrs gSa fd Loop ds gj Iteration dh Complexity leku gSA ,lk ge Outer Loop ds fy, eku Big – O Notation ds :i es a fy[k ldrs gS a& ldrs gSa bl Loop dh Complexity dks fuEukuqlkj Big – O( n ) * O( Complexity of Inner Loop ) Inner Loop esa Hkh ds oy ,d gh printf() Statement gS blfy, Inner Loop gS fd Inner Loop ds lHkh Iteration dh Complexity leku gSA ;kuh
Complexity of Inner Loop Printf() Statement dsoy O(1) gSA lHkh ekuks a dks ,d
=
ds fy, Hkh ;s ekuk tk ldrk
O( n ) * O( printf )
,d gh ckj fy[kk x;k gS blfy, Lo;a printf() Statement dh Complexity lkFk fy[kus ij ges a bl Program dh Complexity fuEukuq lkj izkIr gksrh gS&
//================================================================
f( n )
= = =
O( n ) * O( n ) * O( 1 ) O( n * n ) O( n2)
//================================================================
pfy,] ,d vkS j Sample Program dh Complexity Kkr djrs gSAa
Program
fuEukuqlkj gS&
Example //================================================================== main() { unsigned int i, j, n; printf(“Enter a Nonzero Positive Value as a limit : ”); scanf(“%d”, &n);
for( ; n>1; ) { n = n/2; printf(“%d \n”, n); } getch(); } //==================================================================
bl Loop dh Complexity Kkr djus ds fy, Hkh ge ogh Formula Use dj ldrs gSa ftls fiNys Program ds fy, Use fd;k gSA bl Loop ds gj Iteration dh Complexity leku gS blfy, bls ge O(1) ds :i es a fy[k ldrs gS aA Loop fdruh ckj Iterate gksxk bls Kkr djus ds fy, gesa ;s Kkr djuk gksxk xk fd ge fdlh Number n dks fdruh ckj nks Hkkxksa es a ckaV ldrs gSa tcfd n dk eku 1 ls cMk jgsA ekuyks fd n ds gj eku dks K ckj nks Hkkxks a es a foHkkftr fd;k tk ldrk gS rks bls ge fuEukuqlkj fy[k ldrs gS& a
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
2K <= n
;s rks fuf”pr gS fd tc ge 2K esa 2 dk Hkkx ns rs gSa rks K-1 ckj 2K dk eku 2 gksrk gS vkSj tc ge bls ,d ckj vkSj 2 ls foHkkftr djrs gS a rks 2K dk eku 1 gks tkrk gSA 2K dk eku 1 gks rs gh Loop Terminate gks tkrk gSA blfy, tc n dk eku 2K ds cjkcj gks ( n = 2K ) rc Loop K ckj Repeat gksxkA xkA pwfd fa d n = 2K gS blfy, ;s Loop n ds fofHkUu ekuks a ds fy, dbZ ckj Repeat gksxk xk ysfdu fdu ;s Loop K + 1 Times Repeat ugha gks ldrk D;ks afd K dk eku K + 1 ds eku ls de gks rk gSA blfy, ;fn n, K o ?kkr K+1 ls Bounded gS rks ;s Loop K ckj pyrk gSA K o n ds chp esa ;s lEca/k gS fd K ml log dk Integer Part gS ftldk vk/kkj 2 gSA blfy, bl mnkgj.k dh Complexity fuEukuq lkj gksxh& O( log n ) * O( 1 ) =
O( log n )
;fn ge log ds vk/kkj 2 ds LFkku ij vk/kkj 10 dks vUrj ugha iMrk gSA
Use
djsa rks Hkh Complexity ij fdlh izdkj dkj dk dksbZbZ
Example //================================================================== main() { unsigned int i, j, n; printf(“Enter a Nonzero Positive Value as a limit : ”); scanf(“%d”, &n);
for( i=1, m=n+66; i<=m; i++ ) { printf(“%d \n”, i ); } for( j=n/21, m=n/5; j<=m; j++ ) { printf(“%d \n”, j ); } getch(); } //==================================================================
;gka nks Independent Loops es a nks printf() Statements gSAa blfy, bl Program dh dqy Complexity nksu aks printf() Statements dh dqy Complexity ds ;ksx ds cjkcj gksxhA xhA ;fn bl Program dks p ls iznf”kZr fd;k tk, rks bl Program dh Efficiency dks ge fuEukuqlkj Big – O Notation ds :i es a iznf”kZr dj ldrs gS& a Efficiency(p) = O( Outer Loop ) + O( Inner Loop ) Outer Loop dh Efficiency = Inner Loop dh Efficiency = Total Efficiency = =
O(n) O(n) O(n) + O(n) O(n)
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
pfy,] ,d vkSj mnkgj.k ns[krs gS aA ;s mnkgj.k lcls igys mnkgj.k ds leku gh gS ysfdu fdu bles a Iteration Complexity es a vUrj gSA Program fuEukuqlkj gS&
Loop
ds
Example //================================================================== main() { int i, j, n; printf(“Enter printf(“Enter the limit of Pattern”); scanf(“%d”, &n);
for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { printf(“%4d, printf(“%4d, %4d\n”, i, j); } } getch(); } //==================================================================
bldh Efficiency ge fuEukuqlkj Kkr dj ldrs gSa& Efficiency(Outer Loop)
= = = = =
SUM( i, 1, n ) of ( Efficiency of Ith Iteration ) SUM( i, 1, 1, n ) of ( n-i ) n * ( n-1 ) / 2 O( n * n ) O( n2 )
Inserting and Deleting fdlh Array es a ;fn txg miyC/k gks rks ubZ bdkbZ dks Array ds vUr es a tksMuk Muk dkQh vklku gks rk gSA ysfdu fdu tc gesa Array ds fdlh fo”ks’k ’k Index Number ij eku dks Insert djuk gks rk gS rks blds fy;s Muh gS] mlls ckn ds lkjs Elements dks ,d&,d LFkku Array ds ftl Element ds ckn ubZ bdkbZ tksMuh vkxs izfrLFkkfir fd;k tkrk gSA fQj u, eku dks Array es a tksMk Mk tkrk gSA ;fn ge Array es a eku Insert djus ls igys ftl LFkku ij eku Insert djuk gS] mlls vkxs ds lHkh ekuks a dks izfrLFkkfir frLFkkfir ugha djrs gSa rks gekjk u;k eku iqjkus eku ij Over Write gks tkrk gSA blh rjg ls fdlh Array ds vfUre Element dks Delete djuk dkQh vklku gksrk gS ysfdu tc fdlh Array ds fdlh vU; Element dks Delete fd;k tkrk gS] rks Array ds ml Element ls vkxs ds lHkh Elements dks ,d LFkku ihNs izfrLFkkfir djuk iMrk gSA ;fn ,lk uk fd;k tk, rks ftl LFkku ds eku dks Delete fd;k x;k gS ml LFkku ij Garbage eku Store gks tkrk gSA ekuyks fd Name ,d 10 Elements dk Linear Array Fks Linear Array gS ftles a 6 uke Stored gSaA ge pkgrs gSa fd pkSFks uke ds ckn ,d u;k uke Add djs aA bl fLFkfr es a ges a Array ds pkSFks Data item ds ckn ,d txg cukuh gksxhA xhA txg cukus ds fy, Array ds ikapos pos o NBs Data Item dks Move djds NBs o lkros a LFkku ij xkA mlds ckn u, Data Item dks pkSFks LFkku ij Insert djuk gksxkA xkA bl iwjh izfØ;k dk Mode djuk gksxkA Algorithm ge fuEukuqlkj fy[k ldrs gSa &
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
ekuk ,d Array LArray[N] gS ftles a N Items gS aA bl Array ds Index Number K ij ,d Element ITEM dks Insert djuk gS tcfd ge ;s eku dj pyrs gS a fd bl Array es a vHkh bruk LFkku gS fd ge bles a u;k Item Insert dj lds aA pw afd f d ges a Index Number K ij u;k ITEM Insert djuk gS blfy, ges a Index Number K dks [kkyh djuk gksxk xk rkfd u;k Data bles a Store gks ldsA pw afd f d u;k Data Store djus ds fy, ge Index Number K ij txg cuk jgs gSa blfy, gesa Index Number K ls Array ds vfUre Data Items rd ds lHkh Data Items dks ,d LFkku Right es a Move djuk gksxkA bl izfØ;k fØ;k dks ge fuEu fp= }kjk le> ldrs gS a& 10
25
32
45
95
75
ekuk K dk eku 4 gS rks ges a Index Number 4-1 = 3 dks [kkyh djuk gksxkA ,lk djus ij Index Number 4 ds ckn ds lHkh Data Items dks ,d LFkku Right es a Move djuk gksxkA ,lk djus ij ;s Array fuEukuqlkj fn[kkbZ nsxk& 10
25
32
45
45
95
75
vc ge Index number 4 ij u;k ITEM Insert dj ldrs gSaA ldrk gS&
Insert
djus dk Algorithm fuEukuqlkj gks
Algorithm of Inserting //=============================================================== 1 START 2 DECLARE LArray[N], I, K, ITEM 3 REPEATE FOR I = N-1 TO I >= K STEP I = I - 1 4 SET LArray[I] = LArray[I-1] [Shift Data Items to Right] [End of the Loop] 5 SET LArray[K] = ITEM [Insert Element] 6 END //===============================================================
blh rjg ekuk fd ,d Array LArray[N] gS ftles a N Items gS aA bl Array ds Index Number K ij fLFkr fa d ges a Index Number K ij fLFkr Item dks Delete dj jgs gSa blfy, Element dks Delete djuk gSA pwfd ges a Index Number K ds ckn ds lHkh Data Items dks ,d LFkku ihNs dh rjQ Move djuk gksxkA bl izfØ;k dks ge fuEu fp= }kjk le> ldrs gSa & 10
25
32
100
45
95
75
;fn ge K dk eku 5 ekus a rks Index Number 5-1 = 4 ds Data Item dks Delete djuk gSA tc ge Index Number 4 ds Data Item dks Delete djuk pkgrs gSa rks ges a cl bruk gh djuk gS fd Index Number 4 ds Data Item ij Index Number 5 ds Data Item dks Place dj ns aA ;kuh Index Number 4 ds ckn ds lHkh Data Items dks ,d LFkku vkxs ljdk ns aA ,lk djus ij ;s Array fuEukuqkj fn[kkbZ nsxk& xk& 10
25
32
100
95
75
0
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
fdlh Linear Array ls
Deletion
dk Algorithm fuEukuq lkj gks ldrk gS&
//=============================================================== 1 START 2 DECLARE LArray[N], I, K 3 SET ITEM = LArray[K] 4 REPEATE FOR I = K TO N-1 STEP I = I + 1 5 SET LArray[I] = LArray[I+1] [Shift Data Item to Left] [End of the Loop] 6 END //===============================================================
bu nksuksa Algorithms dk ge fuEukuqlkj iz;ksx djds
Program
cuk ldrs gS a&
//================================================================= #include #include #include #define SIZE 10 main() { int Array[SIZE] = {1,10,20,0}; {1,10,20,0}; int i, j, item, id; char choice; while(1) { printf("\n1. Insert Data Item"); printf("\n2. Delete Data Item"); printf("\n3. printf("\n3. Display Data Item"); printf("\n4. Exit"); printf("\n\n Enter Your Choice "); scanf("%d", &choice); switch(choice) { case 1: //Insertion Operation on the Array printf("Enter Index Number [0 to 9] "); Label: fflush(stdin); scanf("%d", &id); if(id < 0 || id > SIZE-1) { printf("Index Number Must Be BETWEEN 0 to 9 "); goto Label; } printf("Enter Value "); scanf("%d", &item); for(i = SIZE-1; i >= id; i--) Array[i] = Array[i-1]; Array[i+1] = item; break; case 2:
//Deletion Operation on the Array
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
printf("Enter ID "); scanf("%d", &id); for(j=id; j
Sorting fdlh Data Structure ds lHkh Data dks ,d O;ofLFkr Øe esa j[kuk Sorting dgykrk gSA ;s nks izdkj dkj dh gks rh gS] vkjksgh gh Øe es a ;k vojksgh gh Øe es aA vkjksgh Øe es a lcls de eku dk Data List dh “kq:vkr esa o lcls vf/kd eku dk Data List ds va r es a Store gks rk gS ] tcfd vojksgh gh Øe es a Bhd blds foijhr fØ;k gks rh gSA ;kuh lcls vf/kd eku dk Data lcls igys o lcls de eku dk Data List esa lcls ckn esa Vk x;k gS& Store gks rk gSA Data Processing ds varxZr Sorting dks eq[;r% rhu Hkkxks a es a ckaVk Bubble Sort ;g vR;f/kd dke es a vkus okyh lcls lk/kkj.k rduhd gSA bles a fdlh Hkh Array ds izFke eku dh rq yuk yuk eku ls djrs gSaA ;fn Array dk nw ljk eku izFke eku ls l s cMk gS] rks vkjksgh Øe es a tekus ds Array ds nw ljs fy;s nw ljs Data dks izFke LFkku ij j[k fn;k tkrk gS o iz Fke Fke LFkku ds Data dks nw ljs LFkku ijA fQj Array ds nw ljs eku dh rqyuk rhljs eku ls djrs gS a vkS j ;fn rhljk eku nw ljs eku ls cMk gS rks rhljs eku dh txg nw ljk eku o nw ljs eku dh txg rhljk eku j[k fn;k tkrk gSA ;fn nw ljk eku rhljs eku ls cMk ugha gS rks Array ds nw ljs o rhljs ekuksa ds LFkku es a dksbZbZ ifjorZu ugha fd;k tkrk gSA ekuks a ds LFkku ifjorZu u dk ;s Øe rc rd pyk;k tkrk gS] tc rd fd lkjs eku vkjksgh gh Øe esa O;ofLFkr uk gks tk,A ;s Øe N-1 ckj pyk;k tkrk gS] tgka N Array ds dqy ekuks a dh la[;k [;k gSA Bubble Sort dk Algorithm fuEukuq lkj gS& //=====================================================================
Here LArray[N] is an Array with N Elements. This Algorithm SORTS the Data Items of the Array 1 START 2 REPEATE FOR I = 1 To N – 1 STEP I = I + 1 [ Outer Loop] 3 REPEATE FOR J = 1 To N – I STEP J = J + 1 [ Inner Loop ] 4 IF LArray[ J ] > LArray[ J + 1 ] 5 LArray[ J ] = LArray[ J + 1 ] [ Interchange Data Items ] [ End of Inner Loop ] [ End of Outer Loop ] 6 End //=====================================================================
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
rc cgq r mi;ksxh xh gks rk gS tc List yxHkx Sorted gks vkSj dsoy dqN gh bdkbZ;ks ;ksa dh gksA tc bdkbZ; aks dh la [;k [;k vf/kd gks rh gS] rc bl fo/kh es a Program dh xfr dkQh de gks tkrh gS] D;ks afd N-1 ckj List dks O;ofLFkr djuk iMrk gSA bl Algorithm dk iz;ksx djrs gq, ge fuEukuqlkj ,d Function cuk ldrs gSa ftls fdlh Hkh Main Function es a Call fd;k tk ldrk gSA Function fuEukuqlkj gS& Bubble Sort Sorting djuh
//==================================================================== void BubbleSort(int *Array, int size) { int i, j, temp; for(i=0; iArray[j+1]) { temp = Array[j]; Array[j] = Array[j+1]; Array[j+1] =temp; } } } } //====================================================================
bl Function es a nks Argument Calling Function ls vkrs gS aA igys Argument es a ,d Array dk Base Address vkrk gS ftlds fofHkUu Elements dks Sorting Order es a j[kuk gS vkSj nw ljs Argument es a Array dh Size iznku nku dh tkrh gSA pw a fd fd bl Function esa Array dk Base Address vkrk gS blfy, bl Function }kjk tks Sorting gks rh gS og Calling Function ds Array dh Sorting gks rh gSA Bubble Sort ds Algorithm ls ge le> ldrs gSa fd ;s Algorithm List es a ls lcls NksVs Vs Data Item dks Search djrk gS vkSj ml Data Element dks mldh Final Position ij Place dj ns rk gSA fQj nw ljs Element ls “kq: djrk gS vkSj cps gq, Elements esa ls lcls NksVsVs Data Item dks [kkst t Iteration esa nw ljs dj mldh Final Position ij Hkstrk gSA Algorithm esa ge ns[k [k ldrs gS a fd ;fn Data Items dh la[;k [;k n gks rks Outer Loop n ckj pyrk gS vkSj Outer Loop ds vk/kkj ij Smallest Data Find djus ds fy, [;k fuEukuqlkj gks rh gS& Inner Loop n-i ckj Comparison djrk gSA ;kuh dqy Comparisons dh la[;k Elements E( n )
lkjka”k ”k es a dgsa rks
= = = = =
i = 1 To n SIGMA( n-i ) (n-1) + (n-2) + (n-2) + . . . + 2 + 1 n(n-1)/2
O(n2) – O(n/2) O(n2) Bubble Sort Algorithm dh Complexity O(n2)
gks rh gSA
Selection Sort bl izdkj dkj dh Sorting es a List dh izFke bdkbZ ls “kq : djds iw jh List esa U;w ure ure eku dks [kkstk tkrk gSS vkSj ml eku dks List ds izkjaHkHk es a j[k fn;k tkrk gSA mlds ckn “ks ’k ’k List es a ls nw ljs LFkku ds fy;s U;w ure ure eku dks [kkstk tkrk gS vkSj izkIr eku dks nw ljs LFkku ij j[k fn;k tkrk gSA fQj rhljs LFkku ds fy;s ;gh Øe
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
viukrs gS vkSj rhljs LFkku ij “ks’k ’k List es a ls izkIr U;w ure ure eku dks j[k fn;k tkrk gSA ;s Øe rc rd pyrk gS] tc rd fd iw jh List dh Sorting ugha gks tkrhA bldk Algorithm fuEukuqlkj gks rk gS& //=====================================================================
Here LArray[N] is an Array with N Elements. This Algorithm SORTS the Data Items of the Array 1 START 2 REPEATE FOR I = 1 To N – 1 STEP I = I + 1 [ Outer Loop] 3 REPEATE FOR J = I + 1 To N – 1 STEP J = J + 1 [ Inner Loop ] 4 IF LArray[ I ] > LArray[ J ] 5 LArray[ I ] = LArray[ J ] [ Interchange Data Items ] [ End of Inner Loop ] [ End of Outer Loop ] 6 End //=====================================================================
bl Algorithm dh Complexity bl ckr ij fuHkZj djrh gS fd Data Structure esa Data fdl rjg ls Organized gS aA ;fn Data yxHkx Sorted gks rks bl Algorithm dh Complexity de gks rh gSA ysfdu fdu 2 fQj Hkh bl Algorithm dh Complexity O(n ) ls vf/kd ugha gks ldrhA ;kuh Data dk vf/kdre 2 Comparison n ckj gks ldrk gSA bl Algorithm dk iz;ksx djds ge fuEukuqlkj Sorting dk Function cukdj vius Program es a Use dj ldrs gSaA //==================================================================== void SelectionSort(int *Array, int size) { int i, j, temp; for(i=0; iArray[j]) { temp = Array[i]; Array[i] = Array[j]; Array[j] =temp; } } } } //====================================================================
Insertion Sort bl Method es a lEiw.kZ List dks nks Hkkxksa Sorted Part o Unsorted Part es ckaVk Vk tkrk gSA List ds Unsorted Part ls ,d bdkbZ ysdj dj Sorted Part es a mi;qDr LFkku ij j[krs gSaA ;g izfØ;k rc rd pykrs gS a tc rd fd Unsorted Part dh lHkh bdkbZ; aka Sorted Part es a O;ofLFkr ugha gks tkrhA bldk Algorithm fuEukuqlkj gks rk gSA bl Method esa nks in gksrs gSaA Sorted Hkkx dks i< dj ml LFkku dks fpfUgr djuk gks rk gS tgka ij Unsorted Hkkx ls bdkbZ ykdj Insert djokuk gSA bl izfØ;k esa bdkbZ ds fy;s LFkku cukus ds fy;s “ks’k’k bdkbZ;ks ; aks dks Right Side es a Shift djuk gks rk gSA mlds ckn cuk, x, LFkku esa bdkbZ dks izo”k s”k djok ns rs gSaA bl Method dk Algorithm fuEukuqlkj gksrk gS& //=====================================================================
Here LArray[N] is an Array with N Elements. This Algorithm SORTS the Data Items of the Array
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
1 START 2 REPEATE FOR I = 1 To N – 1 STEP I = I + 1 [ Outer Loop ] 3 REPEATE FOR J = 0 To I STEP J = J + 1 [ Inner Loop ] 4 IF LArray[ J ] > LArray[ I ] 5 TEMP = LARRAY[ J ] 6 LArray[ J ] = LArray[ I ] 7 REPEATE FOR K = I To J STEP K = K + 1 [ Inner Loop ] 8 LARRAY[ K ] = LARRAY[ K – 1 ] 9 LARRAY[ K + 1 ] = TEMP [ End of Inner Loop ] [ End of Inner Loop ] [ End of Outer Loop ] 10 End //=====================================================================
bl fof/k ls Sorting rc dh tkuh pkfg;s tc bdkbZ; akss dh la[;k [;k de gks rh gSA tc bdkbZ;ksa dh la[;k [;k vf/kd gks rh gS] rc ;s fof/k Bhd ugha jgrh D;ks afd bdkbZ; aks ds fy;s txg cukus es a le; yxrk gS ftlls Program dh xfr de gks tkrh gSA bl Algorithm dh Complexity es a de ls de n – 1 ckj Comparison djuk iMrk gSA bl Algorithm dk iz;ksx djds ge fuEukuq lkj ,d Function cuk ldrs gSa ftls fdlh Hkh Program es a Use fd;k tk ldrk gS& //==================================================================== void sort(int *Array, int size) { int i, j, k, temp; for(i=0; iArray[i]) { temp = Array[j]; Array[j] = Array[i]; for(k=i; k>j; k--) Array[k] = Array[k-1]; Array[k+1] = temp; } } } } //====================================================================
Insertion Algorithm dk iz;ksx rc fd;k tk ldrk gS tc Data Items n Algorithm dk Inner Loop i-1 Comparisons djrk gSA ;kuh Elements E( n )
Average Case
= = = = =
dh la[;k [;k de gksA bl
i = 1 To n SIGMA( i-1 ) 1 + 2 + 3 + . . . + n-1 n(n-1)/2
O(n2) – O(n/2) O(n2)
es a bl Algorithm dh Complexity dks fuEukuq lkj n”kkZ;k tk ldrk gS& http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Elements E( n )
= = = =
i = 1 To n SIGMA( i-1 )/2 (1 + 2 + 3 + . . . + n-1)/2 n(n-1)/4
O(n2)
ge ns[k [k ldrs gSa fd nksuksa gh fLFkfr;ksa esa bl Algorithm dh Complexity O(n2) gks rh gSA ,d izksxz xkz e cukvks tks nl vad Input ys vkSj mls vkjksgh dze esa Output esa Print djs aA A //================================================================ #include main() { int a[10], n, j, i; clrscr(); for(i=0;i<10;i++) { printf("enter the a:"); scanf("%d", &a[i]); } for(i=0;i<10;i++) { for(j=0; j<=i; j++) { if(a[i]
,d izksxz xkz e cukvks tks nl vad Input ys vkSj mls vojksgh dze esa Output es a Print djsA Aa //================================================================ #include main() { int a[10], n, i, j, sum = 0; clrscr(); for(i=0; i<10; i++) { printf("Enter the a:"); scanf("%d", &a[i]); } for(i=0;i<10;i++)
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
{ for(j=0; j<=i; j++) { if(a[i]>a[j]) { n=a[i]; a[i]=a[j]; a[j]=n; } } } for(i=0;i<10;i++) printf("%d\n", a[i]); sum = sum + a[j+i]; printf("sum = %d", sum); getch(); } //================================================================
Searching ftl izdkj dkj ls fdlh Telephone Directory esa fdlh uke ls Telephone Number [kkstrs trs gS a ;k fdlh Telephone Number ls uke [kkstrs trs gS]a ;k fdlh student ds Roll Number }kjk Student dk Record [kkstk tkrk gS] Bhd blh izdkj ls ,d Key }kjk fdlh Hkh Data Structure ls ml Key ls lEcaf/kr lkjh tkudkjh izkIr dh tk ldrh gSA tSls ;fn ges a Telephone Directory ls 223344 Number fdl O;fDr dk gS vkS j og O;fDr dgka jgrk gS] ;s tkuuk gks s] rks ge bl Number dks Telephone Directory ds gj Number ls Compare djrs gS a] vkSj tgka ;s Comparison ,dne esy djrh gS] lEcaf/kr O;fDr dk uke irk vkfn ge tku ys rs gS aA bl izdkj ls ;s Telephone Number ,d Key ds :i esa Use fd;k tkrk gS] tks ckdh dh lEcaf/kr f/kr tkudkjh ns ns rk gSA ;gh izfØ;k ge Data Structure ds lkFk Hkh djrs gSaA Computer es a Searching nks izdkj dh gksrh gS& Internal Search tc lHkh Records Computer dh Main Memory esa gksrs gS a] rks Main Memory ls dh tkus okyh Searching Internal Search dgykrh gSA External Search tc Records cMs gks rs gS a o Records dh la[;k [;k vf/kd gks rh gS] rc Records dks Hard disk ij laxzfgr dj fy;k tkrk gSA fQj bl Hard Disk ls Searching dh tkrh gSA bl Searching dks External Searching dgk tkrk gSA Internal Searching ds Hkh nks Hkkx gS aA Linear Searching fdlh vO;ofLFkr List esa ls Searching djus dh ;g lcls ljy fo/kh gksrh gSA tSls fdlh Data tuk gks] fd vad d 10 mifLFkr gS ;k ughaA ;g tkuus ds fy;s ,d Key Structure Array es a ges a ;s [kkstuk
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
ys axs vkSj ml Key dk eku 10 dj nsaxs xAs fQj Øe ls bl Key ds eku dh rq yuk yuk Array ds gj ls djsaxs xAs Array ds gj Element ls Key ds eku dh rqyuk dk ;s Øe rc rd pyrk jgrk gS] tc rd fd Array ds fdlh Element dk eku 10 izkIr uk gks tk, ;k fQj Array ds lHkh Elements dk va r uk gks tk,A bldk Algorithm fuEukuqlkj fy[k ldrs gS aA ekuk iq.kkZd a ekuks a dk ,d Array ARRAY[N] gSA Variable Element
Algorithm //=================================================================== 1 LET COUNT = 1; and FOUND =0; 2 While ( COUNT < N ) DO If ARRAY[COUNT] ARRAY[COUNT] = VALUE then FOUND = COUNT COUNT COUNT = COUNT + 1; 3 Print FOUND 4 END //===================================================================
;g ,d vPNh rduhd gS] ysfdu fdu bl rduhd es a Array ds gj Element dks Program dh xfr de gks tkrh gSA bls fuEu fp= esa fn[kk;k x;k gS& Array 10
5
30
20
4
9
Check
djuk iMrk gS] ftlls
41
10 Key
bl Algorithm ij vk/kkfjr ,d iz ksxz xkz e ns[krs [krs gS]a ftles a ,d Array esa dks [kkstuk tuk gS] fd veqd vad List es a miyC/k gS ;k ugha \
Store
fofHkUu vadks d aks es a ls eupkgs vad d
//===================================================================== #include main() { int j, k[10] , key, found=-1; clrscr(); for ( j = 0; j<10; j++) { printf("Enter %d digit ", j+1); scanf("%d", &k[j] ); } printf("\n Which Number Do you want to FIND "); scanf("%d", &key); for ( j = 0; j<10; j++) { if( k[j] == key ) found=key; } if(found > -1 ) printf("\n Number is present in The List "); if(found < 0)
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
printf("\n The Number is not Present in the List "); getch(); } //===================================================================== Output 1 //===================================================================== Enter 1 digit 4 Enter 2 digit 344 Enter 3 digit 344 Enter 4 digit 34 Enter 5 digit 434 Enter 6 digit 434 Enter 7 digit 34 Enter 8 digit 555 Enter 9 digit 55 Enter 10 digit 5 Which Number Do you want to FIND 2 The Number is not Present in the List //===================================================================== Output 2 //===================================================================== Enter 1 digit 1 Enter 2 digit 2 Enter 3 digit 3 Enter 4 digit 4 Enter 5 digit 5 Enter 6 digit 6 Enter 7 digit 7 Enter 8 digit 87 Enter 9 digit 89 Enter 10 digit 9 Which Number Do you want to FIND 9 Number is present in The List //=====================================================================
bl izkxz x s kz e es a Linear Searching dh xbZ gSA lcls igys ,d Array es a ekuks a dks Input fd;k x;k gSA fQj ,d Key uke ds Variable esa oks vad ys rs gS a ftls List es a [kkstuk gSA bl vad dks Loop }kjk Array ds gj Element ls Check fd;k tkrk gSA ;fn key dk vad d Array es a izkIr gksrk gS rks if condition lR; gks tkrh gS vkSj Found uke ds Variable es a key dk vad izkIr gks tkrk gSA ;fn key dk vad d list es a izkIr ugha gks rk gS] rks found dk eku -1 tks fd found dks Declare djrs le; gh ns fn;k x;k Fkk] jgrk gSA ;fn List es a key dk eku fey tkrk gS rks found dk eku -1 ls vf/kd jgrk gS vkSj Output es a Massage feyrk gS fd List es vad miyC/k gSA ;fn List es a vad miyC/k ugha gksrk gS rks found dk eku -1 gksus ds dkj.k 0 ls NksVk Vk jgrk gSA blfy;s Output es a Massage izkIr gksrk gS fd tks vad [kkstk tk tk jgk gS og vad d List es a miyC/k ugha gSA bl izdkj ls Linear Searching dh tkrh gSA Linear Search Algorithm dh Complexity dks Hkh ge f(n) Function dk iz;ksx djds irk dj ldrs gSAa ;fn fdlh Linear Data Structure es a n Data gks a rks ml m l Data Structure ls fdlh ITEM dks Find djus ds fy, Worst Case Algorithm es a ges a vf/kdre n+1 ckj Comparisons djus gksaxs xs tcfd ;fn Data ITEM Data Structure ds vUr esa gks ;k ITEM Data Structure es a uk gksA tcfd Average Case Algorithm esa ITEM ds izkIr gksus dh lEHkkouk n+1/2 gks rh gSA
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Binary Searching ;s vR;f/kd mi;qDr rduhd gS ysfdu fdu bldk iz;ksx ds oy Sorted List ij gh fd;k tk ldrk gSA Linear Fast xfr ls dke djrh gSA ekuk fd Searching dh rqyuk esa Binary Searching cgq r Lowest Highest Mid
= = =
List dk List dk List dk
U;wure eku vf/kdre eku e/;eku
Mid
=
Lowest + Highest / 2
bl izfØ;k esa Key ds eku dh List ds e/;eku ls rqyuk dh tkrh gSA ;fn e/;eku Mid vf/kd gks rk gS rks Key ds eku dh rq yuk yuk List ds Lowest Hkkx ls dh tkrh gSA
Key
ds eku ls
Highest = Mid - 1
rFkk Mid ds u, eku dks okil Mid = Lowest + Highest / 2 }kjk izkIr fd;k tkrk gS A ;fn Key dk eku tk tkrk gSA ;kuh Mid ds eku ls vf/kd gksrk gS] rks Key ds eku dks List ds Highest Hkkx es a [kkstk Lowest = Mid + 1
okil ls mijksDr lq= }kjk Mid dk u;k eku izkIr fd;k tkrk gSA ;s Øe rc rd pyrk jgrk gS tc rd fd Key dk eku izkIr uk gks tk, ;k List lekIr uk gks tk,A Binary Search dh Algorithm fuEukuq lkj gSA ekuk N Elements dh ,d Sorted List int X[N] gSA ;fn Key dk eku List es a fey tkrk gS] rks mls a Store djuk gSA fuEu fp= }kjk bls le>kus dh dksf”k”k dh tk jgh gSA ftles a 1 dks [kkstk tk tk FOUND es jgk gSA ;kuh x = 1 gSA Array[10] low = 0; high = n-1; so high = 10-1 = 9 mid = 0 + 9 / 2 mid = 4
Index Number 4 1 Low
2
ij eku 5 gS blfy, 3
4
x dk
eku array[mid] ;kuh Array[4] ds cjkcj ugha gSA
5
6
7
Mid
8
9
10 High
In First Iteration
Vk gS blfy, Key dk eku Array ds Lower Part es a gksxkA blfy, Loop ds Second x dk eku mid ls NksVk Iteration es a low dk eku 0 gh jgsxk ysfdu fdu high dk eku Change gksdj mid+1 gks tk,xkA ;kuh low = 0; high = n-1; so high = 3-1 + 1 = 4 mid = 0 + 4 / 2 mid = 2
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
1
2
Low
3
4
Mid
5
6
7
8
9
10
High
In Second Iteration Index Number 3 ij fLFkr eku Key x ds eku ds cjkcj ugha gS] blfy, x ds eku dks okil Check fd;k tkrk gS fd x dk eku mid ds eku ls de gS ;k vf/kdA pw afd f d x dk eku 1 gS vkS j mid eku 3 gS blfy, okil x dk eku Array ds Lower Part es a gksxkA xkA okil low ds eku esa dksbZbZ ifjorZu ugha gksxk xk ysfdu high dk eku mid+1 gks tk,xkA ;kuh low = 0; high = n-1; ( mid + 1 )so high = 2-1 + 1 = 2 mid = 0 + 2 / 2 mid = 1
1
2
Low
3
4
5
6
7
8
9
10
High Mid
In Third Iteration
vxys
Iteration esa x dk eku Array ds Algorithm ge fuEukuqlkj fy[k ldrs gS& a
izFke Fke Element ij iz kIr gks tk,xkA
Binary Search
Algorithm: //===================================================================== 1 Let LOWEST = 0 ; HIGHEST = N; FOUND = 0; and flag = false; 2 WHILE [ ( LOWEST = HIGHEST ) .AND. ( flage = false)] Perform steps 3 to 5 3 Mid = Lowest + Highest / 2 4 IF X[MID] = (‘A’) then [FOUND = MID; flage = true]; 5 IF X[mid] < ‘A’ then LOWEST = MID – 1; ELSE HIGHEST = MID – 1; 6 IF ( flage = true ) then print FOUND ELSE ‘unsuccessful search’;
7 END //=====================================================================
Program //===================================================================== #include #include main() { int j, n, x, found, count, a[10], low, high, mid; clrscr(); printf(“Number of Elements in the Array ( <=10): “); scanf(“%d”,&n);
http://www.bccfalna.com/
dk
Data Structure and Algorithms with “C” in Hindi
for(j=0; j
} for(j=0; j
low = 0; high=n-1; found = -1; while((low <= high ) && ( found == -1 )) { mid=(low + high ) / 2; if(a[mid] == x ) found = mid; else if(a[mid] < x ) low = mid + 1; else high = mid -1; } printf(“ \n”);
if(found > -1) printf(“ \n Position of the required element ( from 0 position ) is: %d”, found);
else printf(“ \n Search Failed “); getch(); } //=====================================================================
Output //==================================================================== Number of Elements in the Array Enter The Elements:1 Enter The Elements:2 Enter The Elements:3 Enter The Elements:4 Enter The Elements:5 Enter The Elements:6 Enter The Elements:7 Enter The Elements:8 Enter The Elements:9 Enter The Elements:77 The Entered Array is 1 The Entered Array is 2 The Entered Array is 3 The Entered Array is 4 The Entered Array is 5 The Entered Array is 6
<=10 : 10
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
The Entered Array The Entered Array The Entered Array The Entered Array Enter The Element
is is is is to
7 8 9 77 be searched : 77
Position of the required element is: 10 //=====================================================================
bl iz ksxz xkz e es a Variables ds Declaration ds ckn ;s iw aNk Nk tkrk gS fd User fdrus Elements es a la[;k Store djuk pkgrk gSA User tks la[;k [;k ns rk gS og la[;k [;k n uke ds Variable esa tkdj Store gks tkrh gS vkSj Program esa tgka Hkh Loop pyk;k tkrk gS] Loop dks n rd gh pyk;k tkrk gSA D;ks afd geus tks eku Input fd;s gSa] os n Elements es a gh fd;s gSAa eku Input djus ds ckn ekuksa dks loop }kjk print fd;k x;k gSA fQj ,d Massage }kjk User ls iw aNk N k tkrk gS] fd mls List es a ls dkSulh la[;k [;k [kkstuh gSA User tks la[;k [;k Input djrk gS og la[;k [;k x uke ds Variable es a tk dj Store gks tkrh gSA vc low uke ds Variable dks 0 Assign fd;k x;k gSA ;s Array ds Index number 0 dks crkrk gS rFkk high uke ds fre Location dks Variable dks n-1 fd;k x;k gS tks fd Array es a dqy Store gks ldus okys ekuka s ds vafre crkrk gSA ;kuh ;s Index number 9 dks crk jgk gS D;ks afd gekjs bl Array es a vafre fre eku Index Number 0 ij gh Store gks jgk gSA vc found uke ds Variable dks eku -1 fn;k x;k gSA ge tkurs gSa fd geus Array es a int izdkj ds gh eku Input fd;s gS aA blfy;s Array ds fdlh Element dk eku _.kkRed ugha gks ldrk gSA blfy;s found uke dk Variable Use fd;k x;k gSA bl Variable es a ;fn Search fd;k tkus okyk eku iz kIr gks tkrk tk rk gS rks mls Store fd;k tk,xk vU;Fkk blesa -1 Store jgsxkA vc while((low <= high ) && ( found == -1 )) statement }kjk ,d Loop pyk dj ;s Condition nh xbZ gS fd loop rc rd pysxk xk tc rd fd found dk eku -1 jgrk gS vkSj lkFk gh Variable low dk eku Variable high ds eku ls de ;k cjkcj jgrk gS A Variable low Array ds igys Element dks crkrk gS vkSj Variable high Array ds vafre fre Element dks crkrk gS] ftlesa eku gSA ;gka Logical Operator && dk iz;ks ;ksx fd;k x;k gS] ftlls Loop es a nksu aks Conditions dk lgh gksuk uk t:jh gSA tSls gh dksbZ Condition False gks rh gS rks Loop Terminate gks tkrk gSA tc Loop dh Condition lR; gks rh gS rc Program s”k djrk gSA ;gka mid=low + high / 2; statement }kjk Array ds e/; es a igqpk apk tkrk Control Loop es a izo”k gSA fQj if(a[mid] == x ) statement }kjk ;s irk fd;k tkrk gS] fd D;k Array a ds mid Index Number ij fLFkr eku x ds eku ds cjkcj gS ;k ugha A ;fn x dk eku x ds cjkcj gksrk gS rks found ds mid dk eku ns fn;k tkrk gSA found dk eku -1 ls cny dj mid gks tkrk gS blfy;s while loop dh condition vlR; gks tkrh gS vkSj Loop Terminate gks tkrk gSA ysfdu fdu ;fn Index Number mid dh location ij tks eku gS] og eku x ds eku ds cjkcj ugha gS] rks if condition vlR; gks tkrh gS vkSj Program Control else condition ds izFke statement if(a[mid] < x ) dks Execute djrk gSA ;gka ;s check fd;k tkrk gS fd D;k Array dh mid Index Number dh Position ij tks eku gS] og eku x ds eku ls NksVk Vk gS ;k ughaA ;fn x a[mid] dk eku x ds eku ls NksVk Vk gS rks if condition lR; gks tkrh gS vkS j low = mid + 1; statement }kjk Variable low dk eku mid+1 dj fn;k tkrk gSA ;s statement crkrk gS fd x dk eku fdu ;fn Index Number mid ij fLFkr eku x ds Index Number mid ds Lower Part esa uga h gSA ysfdu eku ls NksVk Vk ugha gS rks high = mid -1; statement }kjk x ds eku dks Array ds Higher Part es [kkstk tk tkrk gSA bl izdkj dkj ls iqu% loop pyrk gS vkSj List ds ftl vk/ks Hkkx es a eku dks [kkstuk tuk gS] mlh vk/ks Hkkx esa eku dks [kkstk tk tkrk gSA tSls gh eku izkIr gksrk gS] found dk eku -1 ls cny dk x ds cjkcj gks tkrk gS vkSj Loop Terminate gks tkrk gSA ;fn iw js Array es eku izkIr ugha gks rk gS] rks Array dk low o high Variable dk eku leku gks tkrk gS vkSj Loop dk var gks tkrk gS vkS j Loop Terminate gks tkrk gSA ;fn eku izkIr gks tkrk gS rks Array ds ml Location ds Index Number dks print fd;k tkrk gS vU;Fkk ;s Massage Print fd;k tkrk gS fd Search Fail gks xbZ ;kuh List es a lEcaf/kr eku ugha gSA
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
String Operations and Data Structure ge tkurs gS a fd dksbZbZ String ,d 1-D Array esa Store gksrh gS blfy, ge fdlh String ds lkFk Hkh os lHkh Operations dj ldrs gS a tks fdlh Integer izdkj ds ekuks a ds Array ds lkFk djrs gSAa ;kuh ge fdlh String es a ubZ Sub String dks Insert dj ldrs gS a] String es a fdlh Sub String dks Delete dj ldrs gS a] fdlh String dks Search dj ldrs gS]a vkfnA vkt ge tks Hkh Word Processors tSls fd MS-Word, Open – Office vkfn Use djrs gS]a mues a dkj ds Operations fd, tk ldrs gS aA tc ges a fdlh String esa dksbZbZ vU; Sub Strings ij fofHkUu izdkj String Insert djuh gks rh gS] rks ges a lcls igys ml Memory Location ij tkuk iMrk gS] tgka String dks Insert djuk gSA ge ftl String ds 1-D Array es a dksbZbZ Sub String Insert djuk pkgrs gSa ml uk pkfg,A ;fn Target String ds Array esa Space ugha gksxk] rks ge ;fn String ds Array es a Space gksuk dksbZbZ Source String ml Array es a Insert djs axs x]s rks Target String ds Last ds Characters Delete gks tk,axAs gesa Insert dh tkus okyh Sub String dh Length dk Hkh irk gksuk pkfg,] rkfd ge ftl LFkku ij String dks Insert djuk pkgrs gS]a ml LFkku ls Sub String dh Length ds cjkcj Space rd tks Hkh Characters Target Array es a gS a] mUgs a mrus gh Characters Right es a Shift dj lds aA bl tkudkjh ds vk/kkj ij ge fuEukuq lkj ,d Algorithm fy[k ldrs gS a tks fdlh String es a Sub String Insert ds Steps dks iznf”kZ nf”kZ r djsxkA Algorithm //=================================================================== Here TARRAY[SIZE] is an Array where SIZE is the size of the Array. SARRAY[N] is an Array where N is the Size of the Array. POS is the Target Position of the Sub String in the Source String. LENGTH is the Length of the Sub String. X and I are the Variables of the Loop. 1 START 2 SET X = 0 3 REPEATE FOR I = SIZE-1 TO POS 4 TARRAY[I] = SARRAY[I - LENGTH] STEP I = I – 1 [Right Shift Data Elements From Position I To I – LENGTH Position ] [End of the Loop] 5 REPEATE FOR I = POS to POS+LENGTH-1 STEP I = I + 1 6 TARRAY[I] = SARRAY[X] 7 SET X = S + 1 [End of the Loop] 8 END //===================================================================
bl Algorithm ds vk/kkj ij ge fuEukuq lkj ,d Program cuk ldrs gSa ftles a fdlh String es a ,d vU; Sub String dks Insert fd;k x;k gSA Program fuEukuq lkj gS& Program //=================================================================== #include #include #define SIZE 20 main() { char string[SIZE], substring[10], pos; int i, x=0, Length;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
clrscr(); printf("Enter Position"); scanf("%d", &pos); fflush(stdin); printf("\nEnter String"); gets(string); printf("Enter Sub String"); gets(substring); Length = strlen(substring); strlen(substring); for(i=SIZE-1; i>(int)pos; i--) { string[i] = string[i-Length]; } for(i=pos; i<=pos+Length-1; i++) { string[i] = substring[x++]; } printf("String is %s", string); getch(); } //===================================================================
bl Program dks
Execute
djus ij bldk Output fuEukuqlkj izkIr gksrk gS%
Output //================================================================== Enter Position 6 Enter String Rajasthan Enter Sub String Pali String is RajastPalihan //===================================================================
ge ns[k [k ldrs gS a fd fdlh Integer Array es a fdlh eku dks Insert djuk o fdlh String Array es a Sub String Insert djuk nksuks u aks es a dksbZbZ fo”ks’k’k vUrj ugha gSA ftl rjg ge fdlh String esa fdlh Sub String dks Insert dj ldrs gSa mlh rjg ls fdlh String ls fdlh Sub String dks Delete Hkh dj ldrs gS aA fdlh String ls fdlh Sub String dks Delete djus ds fy, gesa Array ds ml Location dh t:jr gksrh gS tgka ls Characters dks Delete djuk gS vkSj ftrus Characters Delete djus gks rs gS]a mu Characters ds Length dh t:jr gks rh gSA fdlh String ls dqN Characters Delete djus ds fy, ge fuEukuqlkj Algorithm fy[k ldrs gS a% Algorithm //=================================================================== Here TARRAY[SIZE] is an Array where SIZE is the size of the Array. POS is the Target Position of the Character From where we want to delete the Specified Number of Characters. LENGTH is the Length of the Characters we want to delete from the String. X and I are the Variables of the Loop.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
1 START 2 REPEATE FOR I = POS TO SIZE-1 STEP I = I + 1 3 TARRAY[I] = TARRAY[I + LENGTH] [Right Shift Data Elements From Position I – LENGTH To I Position ] [End of the Loop] 4 END //===================================================================
bl Algorithm ds vk/kkj ij ge fuEukuqlkj Program cuk ldrs gSa& Program //=================================================================== #include #include #define SIZE 20 main() { char string[SIZE], pos; int i, Length; clrscr(); printf("Enter String"); gets(string); fflush(stdin); printf("Enter Position From where you want to DELETE Characters : "); scanf("%d", &pos); fflush(stdin); printf("\nEnter Number of Characters you want to DELETE : "); scanf("%d", &Length); for(i=(int)pos; for(i=(int)pos; i
Output //================================================================== Enter String : India Rajasthan Enter Position From where you want to DELETE Characters : 5 Enter Number of Characters you want to DELETE : 4 String is Indijasthan //===================================================================
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Pattern Matching Algorithms Pattern Matching dk eryc ;s irk djuk gks rk gS fd D;k Input fd;k x;k Substring fdlh vU; String es a miyC/k gS ;k ughaA ;s irk djus ds fy, gesa fdlh Array ds gj Characters dks Sub String ds gj Character ls Match djokuk gks rk gSA fdlh Pattern dks Match djus ds fy, fofHkUu izdkj ds Algorithms dk iz;ksx fd;k tkrk gSA ge ;gka ij lcls T;knk iz;ksx es a vkus okys o lcls ljy Algorithm dk iz;ksx fdlh String esa Pattern dks Match djus ds fy, dj jgs gSAa bl Algorithm dks Brute Force Algorithm dgk tkrk gSA ;s Algorithm fuEukuqlkj gS& Algorithm //=================================================================== Here ARRAY[N] and PATTERN[M] is a String of Size N and M. I, J and K are the Variables For Looping. STRLEN1 is the Length of ARRAY[N] and STRLEN2 is the Length of PATTERN[M]. This Algorithm Finds the Position of PATTERN[M] in ARRAY[N]. 1 START 2 SET POS = 0 3 REPEATE FOR I = POS TO STRLEN1 – STRLEN2 STEP I = I + 1 4 SET J = 0 5 SET K = I 6 REPEATE STEP 7 and 8 WHILE ARRAY[K] == PATTERN[J] .AND. J
bl Algorithm dk iz;ksx djds ge fuEukuqlkj ,d Program cuk ldrs gSaA ;s Program nks String User ls ys rk gS vkSj nw ljh String dks igyh String esa [kkstrk trk gSA ;fn igyh Sting esa nw ljh String fey tkrh gS rks ;s Algorithm igyh String ds ml Index Number dks Return djrk gS tgka ij String dk Patter Match djrk gSA Program fuEukuqlkj gS& Program //=================================================================== #include #include #define SIZE 20 main() { char string[SIZE], substring[10],pos = 0; int i, j, k, stringLength, subStringLength; clrscr(); printf("Enter String : "); gets(string); fflush(stdin); printf("Enter Sub String which you want to Find in String : "); gets(substring); fflush(stdin);
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
stringLength = strlen(string); subStringLength = strlen(substring); for(i=(int)pos; i<=stringLength-subStringLength; i++) { j = 0; k = i; while((string[k] == substring[j]) && (j
Output //================================================================== Enter String : Indian Lata Mageskar Enter Sub String which you want to Find in String : Mageskar Sub String Found at Index Number 13 //===================================================================
;gka geus dqN mnkgj.k ns[ks [ks tks fd fdlh String ls lEcaf/kr f/kr Operations djus ds lEca/k/k esa gSAa ge vkSj Hkh dbZ izdkj ds String Operations dj ldrs gSaA blh izdkj dkj ds Operations fofHkUu Word Processor Softwares esa viuk, tkrs gS a vkSj String dks fofHkUu rjhdks a ls Process fd;k tkrk gSA gkykafd dqN vkSj Hkh Algorithms gSa tks String Processing ds fy, dkQh mi;ksxh gks rs gS a ysfdu fdu fdlh Patter Matching ds fy, Brute Force Algorithm dks dkQh Use fd;k tkrk gSA bl Algorithm dh Complexity es a Data dh Size String o Sub String dh tksM ds cjkcj gks rk gSA ;kuh ;fn fdlh String es a 20 Characters gks a vkSj Find fd, tkus okys Pattern es a 6 Character gks a] rks dqy Input Data Items dh la[;k [;k bu nksuks uksa ds tksM ds cjkcj gks rh gSA ;kuh ;fn String ds Data Items dh la[;k [;k s gks o Find fd, tk jgs String ds Data Items dh la[;k [;k r gks rks dqy Input Data Items dh la[;k [;k fuEukulkj n gksxh xh : n = s + r
Complexity esa bl Algorithm dh Complexity C(n) = r(s – r(s – r + 1) gksrh gSA ;fn n fdlh Worst Case Complexity n – r gS] rks Complexity fuEukuqlkj gksxh& dk eku Fixed gks tSlk fd gekjs Case es a s = n – C(n) = r( n – 2*r + 1)
dk vf/kdre eku rc gks rk gS tc r fd;k tk, rks Function fuEukuq lkj gksxk& C(n)
= (n+1)/4
gksrk gSA ;fn bl Equation es a
http://www.bccfalna.com/
r dk
eku Place
Data Structure and Algorithms with “C” in Hindi
C(n) = (n + 1 )2 / 8 = O(n2)
Algebra of Matrix ,d 2D Array dks Industrial Area es a Table dgk tkrk gS tcfd Scientific Area es a Matrix dgrs gS aA ;fn fdlh Company ds fofHkUu Employees dh Information dks Manage djuk gks rks ge ,d 2D Array dk iz;ksx djds Company ds fofHkUu Employees dh Information dks Manage dj ldrs gS aA fdu tc ge Mathematical Employees dh bu Information ds lewg dks Table dgk tk ldrk gSA ysfdu Calculations ;k Scientific Expressions dks Handle djus ds fy, ,d 2D Array dk iz;ksx djrs gSa rks mlh 2D Array dks Matrix dgk tkrk gSA ge fofHkUu izdkj ds Algebraic Operations dks ,d Array dk iz;ksx djds Represent dj ldrs gS aA bl Section es a ge bUgh ds ckjs es a lh[ks axsA Addition of Matrixes nks Matrix dk Addition rHkh lEHko gS tc nks uks u aks Matrix leku izdkj ds gks a ;kuh nksu aks Matrix ds Rows o Columns dh la[;k [;k leku gksA ekuyks A o B nks leku izdkj dkj ds Matrix gS a] rks Matrix A o Matrix B dks ,d rhljs Matrix ds :i esa Define fd;k tk ldrk gS ftles a nksuks u aks Matrix ds lHkh leku Locations dk ;ksx rhljs Matrix es a leku Location ij gks rk gSA mnkgj.k ds fy, 1 5 9 13
A=
A+B
2 6 10 14
1+91 5+50 9+90 13+13
3 7 11 15
4 8 12 16
2+12 6+61 10+10 14+14
3+63 7+79 11+11 15+15
91 50 90 13
B=
4+94 8+80 12+12 16+16
OR
92 55 99 26
12 61 10 14
14 67 20 28
63 79 11 15
66 86 22 30
94 80 12 16
98 88 24 32
nks Matrixes dk tksM djus ds fy, lcls igyh “krZ ;s gS fd nk suks uksa Matrix ds Rows o Columns dh la[;k [;k leku gksA tc nks Matrix tksMus Mus yk;d gks rs gS a rc igys Matrix ds 0,0 Location ds eku dks nw ljs Matrix ds 0,0 Location ds eku ls tksM dj rhljs Matrix ds 0,0 Location ij Store fd;k tkrk gSA blh rjg ls igys Matrix ds 0,1 Location ds eku dks nw ljs Matrix ds 0,1 Location ds eku ls tksMdj Mdj rhljs Matrix ds 0,1 Position ij Store djuk gks rk gSA ;kuh fdUgh nks Matrix dks tksMus ds fy, ge fuEu Algorithm dk iz;ksx dj ldrs gSa& Matrix Addition Algorithm //=================================================================== MATRIX_ADDITION(MATRIX1, ROW1, COL1, MATRIX2, ROW2, COL2, MATRIX3, COL3)
ROW3,
Here MATRIX1 is a Matrix with Size ROW1 and COL1, MATRIX2 is a Matrix with Size ROW2 and COL2, MATRIX3 is a Matrix with Size ROW3 and COL3. 1
IF ROW1 ROW1 = ROW2 and and COL1 = COL2 then
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
PRINT “MATRIX ADDITION is Possible” REPEATE FOR I = 0 To M STEP SIZE 1 INCREMENT REPEATE FOR J = 0 To N STEP SIZE J = J + 1 MATRIX1[I][J]=MATRIX1[I][J] + MATRIX2[I][J] ELSE PRINT “MATRIX ADDITION is not Possible” 2 EXIT //===================================================================
Subtraction of Matrixes ftl rjg ls ge nks Matrix dks vkil es a tksM ldrs gS a mlh rjg ls ge igys Matrix ls nw ljs Matrix dks ?kVkdj rhljk Matrix Hkh izkIr dj ldrs gSAa ;gka ;s ckr /;ku j[kus okyh gks rh gS fd ;fn ,d Matrix A o nw ljk Matrix B gS rks A – A – B vkSj B – A dk ifj.kke leku ugha vkrk gSA bls fuEu mnkgj.k ls le> ldrs gS a& 1 5 9 13
A=
2 6 10 14
3 7 11 15
4 8 12 16
A – B
1-91 5-50 9-90 13-13
2-12 6-61 10-10 14-14
3-63 7-79 11-11 15-15
4-94 8-80 12-12 16-16
B – A
91-1 50-5 90-9 13-13
12-2 61-6 10-10 14-14
6-33 79-7 11-11 15-15
94-4 80-8 12-12 16-16
B=
91 50 90 13
12 61 10 14
63 79 11 15
94 80 12 16
OR
-90 -45 -81 0
OR
90 10 60 90 45 55 72 72 81 0 0 0 0 0 0 0
-10 -55 0 0
-60 -72 0 0
-90 -72 0 0
fdlh ,d Matrix es a ls nw ljs Matrix dks ?kVk dj rhljk ifj.kkeh Matrix izkIr djus ds fy, Hkh nksuks uksa [;k leku gksuk uk t:jh gksrk gSA tc nks Matrix bl fLFkfr es a gks a fd Matrix ds Rows o Columns dh la[;k mUgs a ?kVk;k tk lds rks ges a igys Matrix dh 0,0 Location ds eku dks nw ljs Matrix ds 0,0 Location ds eku es a ls ?kVk dj rhljs Matrix ds 0,0 Location ij ifj.kke dks Store djuk gks rk gSA Bhd blh rjg ls igys Matrix ds 0,1 Location ds eku dks nw ljs Matrix ds 0,1 Location ds eku esa ls ?kVk dj rhljs Matrix ds 0,1 Location ij ifj.kke dks Store djuk gksrk gS vkSj ;gh izfØ;k ges a Matrix ds vU; lHkh Locations ds ekuks a ds lkFk viukuh gks rh gSA Matrix ds Subtraction ds fy, ge fuEu Algorithm dk iz;ksx dj ldrs gS a& Matrix Subtraction Subtr action Algorithm Algori thm //=================================================================== MATRIX_SUBTRACTION(MATRIX1, ROW1, COL1, MATRIX2, ROW2, COL2, MATRIX3, ROW3, COL3) Here MATRIX1 is a Matrix with Size ROW1 and COL1, MATRIX2 is a Matrix with Size ROW2 and COL2, MATRIX3 is a Matrix with Size ROW3 and COL3. 1
IF ROW1 ROW1 = ROW2 and and COL1 = COL2 then
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
PRINT “MATRIX SUBTRACTION is Possible” REPEATE FOR I = 0 To M STEP SIZE I = I + 1 REPEATE FOR J = 0 To N STEP SIZE J = J + 1 MATRIX1[I][J]=MATRIX1[I][J] - MATRIX2[I][J] ELSE PRINT “MATRIX SUBTRACTION is not Possible” 2 EXIT //===================================================================
Multiplication of Matrix nks Matrix dk xq.kk .kk djus dk rjhdk lkekU; xq.kk djus ds rjhds ls FkksMk Mk vyx gks rk gSA nks Matrix dk xq.kk mlh fLFkfr es a gks ldrk gS tc igys Matrix ds Rows dh la[;k [;k N nw ljs Matrix ds Columns dh la[;k [;k M ds cjkcj gksA bl izfØ;k dks fuEu mnkgj.k }kjk le>k tk ldrk gS& 1 5 9
A=
2 3 4 6 7 8 10 11 12
B=
12 9 6 3
11 8 5 2
10 7 4 1
ekuyks fd gekjs ikl A o B nks Matrix gSAa igys Matrix A es a Rows dh la[;k N = 3 gS vkSj nw ljs Matrix [;k M = 3 gS] blfy, bu nksuks uksa Matrix dk xq.kk djuk lEHko gSA tc ge nks Matrix B es a Columns dh la[;k dk xq.kk djuk pkgrs gSa rks ges a igys Matrix ds Rows ds ekuksa dk xq.kk Øe ls nw ljs Matrix ds Columns ds ekuks a ls djuk gksrk gSA bl dkj.k ls nks Matrix A o B dk xq.kk dHkh Hkh B o A ds xq.kk . kk ds cjkcj ugha gks rkA ;kuh A.B
<> B . A
A.B
1*12+2*9+3*6+4*3 5*12+6*9+7*6+8*3 9*12+10*9+11*6+12*3
1*11+2*8+3*5+4*2 5*11+6*8+7*5+8*2 9*11+10*8+11*5+12*2
1*10+2*7+3*4+4*1 5*10+6*7+7*4+8*1 9*10+10*7+11*4+12*1
OR
12 + 18 + 18 + 12 60 + 54 + 42 + 24 108+ 90 + 66 + 36
11 + 16 + 15 + 8 55 + 48 + 35 + 16 99 + 80 + 55 + 24
10 + 14 + 12 + 4 50 + 42 + 28 + 8 90 + 70 + 44 + 12
OR
60 170 300
50 154 258
40 128 216
and
B.A
12*1+11*5+10 *9 9*1+8*5+7*9 6*1+5*5+4*9 3*1+2*5+1*9
12*2+11*6+10*1 0 9*2+8*6+7*10 6*2+5*6+4*10 3*2+2*6+1*10
12*3+11*7+10*1 1 9*3+8*7+7*11 6*3+5*7+4*11 3*3+2*7+1*11
http://www.bccfalna.com/
12*4+11*8+10* 12 9*4+8*8+7*12 6*4+5*8+4*12 3*4+2*8+1*12
Data Structure and Algorithms with “C” in Hindi
OR
12 09 06 03
OR
157 112 067 022
+ + + +
55 40 25 10
+ + + +
180 136 082 028
90 63 36 09 213 160 097 034
24 18 12 06
+ + + +
66 48 30 12
+ + + +
100 070 040 010
36 27 18 09
+ + + +
77 56 35 14
+ + + +
110 077 044 011
48 36 24 12
+ + + +
88 64 40 16
+ + + +
120 084 048 012
246 184 112 040
ge ns[k [k ldrs gSa fd Matrix A dk Matrix B ls xq.kk djus ij tks Matrix izkIr gks rk gS og 3*3 dk Matrix izkIr gksrk gS tcfd Matrix B dk Matrix A ls xq.kk djus ij ges a 4*4 dk Matrix izkIr gks rk gSA ;kuh nks Matrix dk xq.kk .kk fdl Øe es a fd;k tk jgk gS] Matrix ds xq.kuQy . kuQy ij bl ckr dk izHkko iMrk gS vkSj gesa nksu aks izdkj ds xq.kuQy Matrix vyx&vyx izkIr gksrs gS aA fdUgha nks Matrixes dk xq.kk djus ds fy, ge fuEu Algorithm dk iz;ksx dj ldrs gSa& Matrix Multiplication Multi plication Algorithm Alg orithm //=================================================================== MATRIX_MULTIPLICATION(MATRIX1, ROW1, COL1, MATRIX2, ROW2, COL2, MATRIX3, ROW3, COL3) Here MATRIX1 is a Matrix with Size ROW1 and COL1, MATRIX2 is a Matrix with Size ROW2 and COL2, MATRIX3 is a Matrix with Size ROW3 and COL3. 1 IF COL2 = ROW1 [ When we are taking Column of first matrix and multiplying it with rows of second matrix. ] then REPEATE FOR I = 0 To ROW1-1 STEP SIZE I = I + 1 REPEATE FOR J = 0 To COL2-1 STEP SIZE J = J + 1 MATRIX3[I][J] = 0 REPEATE FOR K = 0 To COL1-1 STEP SIZE K = K + 1 MATRIX3[I][J] = MATRIX3[I][J] + MATRIX1[I][K] * MATRIX2[K][J] ELSE IF ROW1 = COL2 [ When we are taking Rows of first matrix and multiplying it with the columns of the second matrix. ] then REPEATE FOR I = 0 To ROW1-1 STEP SIZE I = I + 1 REPEATE FOR J = 0 To COL2-1 STEP SIZE J = J + 1 MATRIX3[I][J] = 0 REPEATE FOR K = 0 To COL2-1 STEP SIZE K = K + 1 MATRIX3[I][J] = MATRIX3[I][J] + MATRIX1[I][K] * MATRIX2[K][J] ELSE PRINT “Multiplication of MATRIXES is not possible “
2 EXIT //===================================================================
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Transpose of Matrix tc fdlh Matrix ds Rows ds fofHkUu Data dks Columns Wise O;ofLFkr dj fn;k tkrk gS] rks bl izfØ;k dks Matrix dk Transposition djuk dgrs gS aA tSls fuEu Matrix A dks Transpose djds Matrix AT dh rjg fd;k tk ldrk gS& A =
157 112 067
180 136 082
213 160 097
AT =
157 180 213
112 136 160
067 082 097
fdlh Matrix dks
Transpose
djus ds fy, ge fuEu Algorithm dk iz;ksx dj ldrs gS& a
Matrix Transposition Algorithm //================================================================== MATRIX_TRANSPOSITION(MATRIX, ROW, COL, MATRIX_T, ROW_T, COL_T) Here MATRIX is a Matrix with Size ROW and COL and MATRIX_T is a Transpose Matrix with Size ROW_T and COL_T. 1 REPEATE FOR I = 0 To ROW-1 2 REPEATE FOR J = 0 To COL-1 3 MATRIX_T[I][J] = MATRIX[J][I] 4 EXIT //===================================================================
Orthogonal Matrix tc fdlh Matrix es a Rows o Columns dh la[;k [;k leku gks rks bl izdkj ds Matrix dks Square Matrix dgk tkrk gSA ,d Matrix A vkS j mldk Transpose Matrix AT nksu aks dk ;fn xq.kk fd;k tk, vkSj ges a izkIr gksusus okyk Result Matrix ogh gks tks Actual Matrix A gS] rks bl izdkj ds Matrix dks Orthogonal Matrix dgk tkrk gSA fuEu fp= esa ,d Matrix A o mldk Transpose Matrix AT gSA ;fn bu nksuks u aks dk xq.kk fd;k tkrk gS rks ges a izkIr gksusus okyk Matrix U mlh izdkj dk fn[kkbZ ns rk gS ftl izdkj dk Original Matrix A gSA bl Matrix dks ge Orthogonal Matrix dgs axsA A =
1 0 0
0 1 0
0 0 1
AT =
1 0 0
0 1 0
0 0 1
1 0 0
0 1 0
0 0 1
U =
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
bls ;fn ge Mathematically fy[kuk pkgs a rks fuEukuqlkj fy[k ldrs gS a& U =
A * AT
tc fdlh Square Matrix es a fod.kZ ds LFkku ij fLFkr lHkh Data Elements 1 gks a vkS j “ks’k’k lHkh Data dkj ds Matrix dks Identity Matrix dgk tkrk gSA D;ks afd bl izdkj ds Elements dk eku 0 gks rks bl izdkj Matrix dk Transpose Matrix AT o Multiplication Matrix U nksu aks gh Actual Matrix A ds leku gh gks rs gSAa
Symmetric Matrix tc dksbZbZ Matrix A o mldk Transpose Matrix AT nksu aks ds lHkh Data Elements leku gks a rks bl izdkj ds Matrix dks Symmetric Matrix dgk tkrk gSA ;kuh ;fn A = AT gks rks bl izdkj ds Matrix dks Symmetric Matrix dgk tkrk gSA bls ge vxys fp= }kjk Hkh le> ldrs gS a&
A =
1 0 0
0 1 0
0 0 1
AT =
1 0 0
0 1 0
0 0 1
ge ns[k [k ldrs gSa fd Matrix A o mldk Transpose Matrix A T nksuks u aks ds fofHkUu Data Elements ,dne leku gS] blfy, ;s ,d Symmetric Matrix gSA Sparse Matrix ;fn fdlh Matrix es a T;knkrj Data Elements 0 gks a] rks bl izdkj ds Matrix dks Sparse Matrix dgk tkrk gSA gkykafd fd ;s dHkh fuf”pr ugha gksrk gS fd fdl Matrix dks Sparse Matrix dg ldrs gSa vkSj fdls ughaA ysfdu fdu fQj Hkh ;fn fdlh Matrix ds dqy Data Elements esa 2/3 ls vf/kd Elements dk eku 0 gks rks bl izdkj ds Matrix dks Sparse Matrix dh Category es a j[kk tkrk gSA mnkgj.k ds fy, fuEu Matrix ,d Sparse Matrix dk mnkgj.k gS& 11 0 0
0 21 0
0 0 31
;fn ge bl Matrix dks Memory esa Store djuk pkgs a rks ges a rks ges a dqy 9 Memory Locations ds fy, Space Reserve djuk gksxkA tcfd ge ns [k [k ldrs gS a fd bl Matrix esa ds oy rhu gh Data Elements mi;ksxh xh gS a tks fdlh Information dks Represent dj jgs gSAa bl fLFkfr es a ckdh ds 6 Space cs otg Memory Space dks Reserve j[ks axsA
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Sparse Matrix ds Data dks Represent djus ds fy, ,d ,lh O;oLFkk dk iz;ksx fd;k tkrk gS ftls 3 – Tuple Representation dgk tkrk gSA bl O;oLFkk es a ,d ,lk Array Create fd;k tkrk gS ftlesa Matrix ds gj eku dks ,d Row ;k Tuple ds :i esa Store fd;k tkrk gSA bl Row es a rhu Columns Non – Zero Data Element dh Row dk Index Number gks rk gS A nw ljs gks rs gSaA igys Column es a ml Non – Column es a ml Non – Zero Data Element dh Column dk Index Number gks rk gS vkSj rhljs Column es a Matrix ds Data Element dk Actual eku gksrk gSA tSls ;fn mijksDr Matrix dks gh ge Sparse Matrix ds :i esa Memory es a Store djuk pkgsa rks ge fuEukuqlkj ,d Array Create dj ldrs
gS a& //==================================================================== int SparseMatrix[ ][] = { 0,0,11, 1,1,21, 2,2,31 }; //====================================================================
gekjs Actual Matrix es a Row Number 0 o Column Number 0 ij eku 11 gSA bls ,d Row ;k Tuple ds :i es a fy[kus ds fy, SparseMatrix esa igys Index Number ij Row Number 0 dks Fill fd;k x;k gSA nw ljs Column es a Column Number 0 dks Fill fd;k x;k gS vkSj rhljs Column es a Actual eku 11 dks Information dks Store djus ds fy, ges a 9 Memory Fill fd;k x;k gSA ;gka Hkh Sparse Matrix dh iw jh Spaces dh vko”;drk gksrh gS ysfdu ;fn fdlh Sparse Matrix dh Size 10 * 10 dh gks vkSj mlesa ds oy 20 Data Elements ,ls gks a ftUgsa 3 – Tuple es a Represent djuk gks rks ges a dsoy 20 Locations dh gh vko”;drk vko”;drk gksxh tcfd ;fn 10*10 dk Matrix Create fd;k tk, rks ges a 100 Memory Locations dh t:jr gksxhA ;kuh fdlh 10*10 ds Sparse Matrix ds dsoy 20 Data dks Represent djus ds fy, Representation dk iz;ksx djrs gSa rks ge 80 Memory Locations dks cpk ldrs gS aA ;fn ge 3 – Tuple Representation ;gh Sparse Matrix dk Computer Science es a mi;ksx gSA
Linked Lists ds ,d Linear Collection dks ge lkekU; thou es a List dgrs gSAa fdlh Hkh List es a ,d ;k ,d ls vf/kd Data Items gks rs gS aA ge gekjh vko”;drkuq lkj u, Item List esa Add djrs gSa vkSj fdlh Item dks List ls Delete djrs gSa ;k fdlh Item dks Modify djrs gSAa mnkgj.k ds fy, ekuyks fd gesa dqN lkeku [kjhnus ds fy, ,d List cukrs gS a ftuesa fuEu Items gS a tks gesa [kjhnus gS a& Data
//======================================================================== Pen Floppy CD Bag Walkman CD Player Speaker Set //=========================================================================
;fn ge pkgs a rks blesa dqN vkSj Items Hkh Add dj ldrs gSa ftUgs a ge [kjhnuk pkgrs gSaA fuEu List dks nsf[k, ftles a rhu u, Items Add fd, x, gS a& //========================================================================= Pen
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Floppy CD Bag Home Theater Walkman CD Player Color TV Speaker Set Diary //=========================================================================
vki ns[k ldrs gS a fd bl List es a geus rhu u, Items Add fd, gS aA ekuyks fd ges a bl List esa ls fy[ks x, uk pkgrs gS a rks gekjh bl List dks ges a Modify djuk Item CD Player dks Change djds DVD Player ysuk gksxkA xkA ;fn ge bl List dks Modify djrs gSa rks List fuEukuq lkj gks tkrh gS& //========================================================================= Pen Floppy CD Bag Home Theater Walkman DVD Player Color TV Speaker Set Diary //=========================================================================
fdlh List esa
Organized Data dks Store o Process djuk Data Processing dgykrk gSA Data dks Computer Memory es a Store djus dk ,d rjhdk Array gSA ftl rjg ls ge ,d Array Linear rjhds ls fofHkUu Data Items tks fd vkil es a Related gks rs gS a] Store djrs gS a] mlh rjg ls Data Items dks Memory es a Physically Related :i es a Store dj ldrs gS aA fdlh Array esa gj Data Item vxys Index Number ij Store gksrk gSA ;kuh Data Items Physically Hkh Memory es a Related gks rs gSAa ysfdu fdu Array dh dqN dfe;ka gSaA
1 fdlh Array es a ;fn fdlh Data Item dks Delete djuk gks ;k dksbZbZ Data Item Insert djuk gks] rks Array ds yxHkx lHkh Data Items dks Left ;k Right esa Shift djuk iMrk gSA ;s fdlh Hkh Array Data Structure dh igyh deh gSA 2 fdlh Array es a ges a ftrus Data Items Insert djus gksrs gSa ges a Array dh mruh Size dks igys gh Define djuk iMrk gSA ,ls es a ;fn ges a vko”;drkuqlkj vf/kd Data Insert djus gks a rks ge Array dh Size dks c
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
gks rs gSaA bl rjg ds Data Structure dks fo”ks’krk,a ’krk,a vkS j dfe;ka gS aA
Linked List
dgk tkrk gSA bl Data Structure dh viuh dqN
,d One – Way List gks rh gS] tks fd Data Items dk Linear Collection dgk tkrk gSA ds fofHkUu Data Items dks Node dgk tkrk gSA fdlh Linked List es a ges a”kk ”kk nks Hkkx gksrs gSaA igys Hkkx dks Information Part dgk tkrk gS vkSj nw ljs Part dks Pointer Part ;k Link Part dgk tkrk gSA Information Part es a ge fofHkUu Data Items ds ,d Records dks Store dj ldrs gSa tcfd Linked ”kk ,d Pointer gks rk gS ftles a vxys Record dk Address ;k Pointer Variable gks rk gSA Part es a ges a”kk bl Pointer Variable dks START dgk tkrk gSA tgka ij List Item dk vUr gksrk gS ml Last Link Field es a NULL gks rk gS A tc fdlh List es a dksbZ bZ Node ugha gks rk gS rks mls NULL List ;k Empty List dgrs gSa vkS j bl fLFkfr esa START esa NULL gksrk gSA
Linked List Linked List
Linked List ;s Dynamic Memory Allocation dk gh foLrkfjr :i gSA ,d Array Linked List dk vPNk mnkgj.k gS] ftles a lHkh Data One By One vkil esa tqMs jgrs gSaA ys y fdu fs du Array dh Size izkxz x s kz e dh “kq:vkr es a gh Declare djuh iMrh gS] ftlls Memory dk lgh rjg ls mi;ksx ugh gks ikrk gSA blh leL;k ls cpus ds fy;s Dynamic Memory Allocation dk iz;ksx fd;k tkrk gSA Structure ds lkFk Dynamic Memory Allocation dk iz;ksx fd;k tk ldrk gSA tc ge Structure ds lkFk Dynamic Memory Allocation dk iz;ksx djrs gS a rks bl rjhds ls Memory es a Store gksusus okys Data Items dh List dks gh Linked List dgrs gSaA Linked List es a ges a”kk ”kk ,d Structure gksrk gS] ftldk ,d Member ges”kk ”a kk ,d Structure izdkj dk Pointer Variable gks rk gS] ftles a vxys Structure dk Address Store jgrk gSA gj Structure List dks node dgk tkrk gSA gj Structure List es a de ls de ,d Member Data dk o ,d Member vxys node ds Address dks Store djus okys Pointer Variable dk gks rk gS A Linked List ds lHkh Structure mlh izdkj dkj ls tqMs jgrs gS] ftl izdkj ls ,d Array ds lHkh Element vkil esa tqMs jgrs gSaA ysfdu fdu Array dh rjg budh Location ,d J`[kyk [a kyk es a ugha gksrh gS cfYd ;s Nodes Memory esa dgha Hkh gks ldrs gSaA ;s vkil es a buds Address }kjk tqM s jgrs gS aA bls fuEu fp=kuq lkj n”kkZ;k x;k gS& Structure1
Structure2
Item1
Item2
Structure3 Item3
Next
Linked List
tSls ekuk ge ,d Structure iz;ksx djrs gSa] ftlds nks Members gS aA igyk ,d int izdkj dkj dk Member gS o nw ljk mlh Structure izdkj dkj dk ,d Pointer Member gS] ftles a mlh Structure ds nw ljs Data dk Address gSA bls fuEukuqlkj crk;k x;k gS& //====================================================================== struct stud { int roll_no; struct stud *next; } //======================================================================
;g Structure
Variable Memory
es a fuEukuq lkj Store gksxk&
stud
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Roll_no
Next
;fn ge nks ls vf/kd Members dh node cuk,a rks ml Structure dk Variable Store gksxk& xk&
Memory
esa fuEukuqlkj
//====================================================================== { int roll_no; char name[30]; int class1; float grad; struct stud *next; } //======================================================================
stud roll_no
name
class1
grad
next
vkb;s vc ns[krs [krs gS a fd Link List fdl izdkj ls cuk;k tkrk gSA ge okil Åij crk, x, igys Structure dks gh ys rs gS]a ftles a nks Members gSaA bl Structure ds nks Variables node1 o node2 fuEukuq lkj Declare djrs gS a& struct stud node1,node2;
;s nksuks u aks
Variables Memory
esa fuEukuq lkj Space cuk,axs x& s
node1 Roll_no
Next
node2 Roll_no
Next
vc ges a bu nksuksa nodes esa fyad cukuk gSA Link cukus ds fy;s izFke node node1 ds next uke ds node node2 dh Storage Cell dk Address nsuk uk gksxkA xkA Address Structure izdkj ds Pointer esa nw ljs nsusus ds fy;s ge & Operator dk iz;ksx djs axs vkS j Dot ( . ) Operator dk iz;ks ;ksx djrs gq, node1 ds next esa node2 dk Address ns axs xAs blds fy;s fuEukuqlkj statement fy[kuk gksxk& xk& node1.next = &node2;
ekuk fd node1 Memory esa 2020 Location ij Stored gS vkSj node2 Memory es a 5020 Location ij Stored gS] rks mijksDr Statement ds ckn node1 es a ;s Address fuEukuqlkj Store gksxk xk tks node2 dks Point djsxk& node1
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
2050 Roll_no
Next node2 Roll_no
vc ;fn ge nksuksa
Nodes
Next
es a dksbZ eku Input djs a] rks ;s eku fuEukuq lkj Store gks axs xs&
node1.roll_no = 200; node2.roll_no = 300; node2.next = NULL;
node1 200 2050 Roll_no
Next node2
300 Roll_no
Next
Null
fd vHkh bls fdlh vU; Variable ls Link ugha djuk gSA next dks NULL eku fn;k x;k gS D;ks afd ;kuh ;s Linked List vHkh ;gha lekIr gks jgh gSA vc ;fn ges a node2 ds Members ds eku Screen ij Print djus gks a rks gea s Arrow Operator dk iz;ksx djuk iMrk gSA tSls node2 ds roll_no dk eku xk& Screen ij fn[kkus ds fy;s ges a fuEukuqlkj Statement fy[kuk gksxk& Node2
ds
printf( “\n %d”, node1.next ->roll_no);
ge fdlh Hkh Pointer dks nw ljh node dk Address nks izdkj ls iznku dj ldrs gSaA ,d rjhdk gS & Operator }kjk ftls fiNys iz k:i izkxz x s ke z esa Use fd;k x;k gSA nw ljk rjhdk gS Dynamic Memory Allocation }kjk ftls vc le>k;k tk jgk gSA ge Dynamic fdl izdkj ls gSA ;kuh
Memory Allocation dk iz;ks ;ksx Dynamic Memory Allocation
djrs gq, fiNys izk:i izksxz xkz e dks gh ;gka le>k jgs gSa fd }kjk ,d node dks nw ljh node dk Address fn;k tkrk
//======================================================================== struct stud { int roll_no; struct stud *next; } //========================================================================
vc Dynamic Memory Allocation ds fy;s ,d Pointer Variable ys rs gS a] tks gSA bls start uke ns rs gSaA ;kuh struct stud *start;
http://www.bccfalna.com/
Structure stud
izdkj dk
Data Structure and Algorithms with “C” in Hindi
vc blds fy;s gS aA ;kuh
Memory Allocate
djrs gS a vkSj ml Allocated
Memory
dk Address bl start dks ns rs
start = ( struct stud * ) malloc ( sizeof ( struct stud ) );
malloc() Function Memory esa ,d Block gSA bl Memory Block dk Address start
cuk,xk] tks fd Structure izdkj dk eku Store dj ldrk esa fn;k x;k gSA bls fuEukuq lkj ns[k [k ldrs gSa&
start Roll_no
Next
bl node esa ge fuEukuqlkj eku iznku dj ldrs gSa & //======================================================================== start->roll_no start->roll_no = 200; start->next = NULL; //========================================================================
;s eku fuEukuq lkj store gksrs gS& a start 200 Roll_no
0 Next
vc ge izFke node esa ,d nw ljh node cuk dj mls tksMrs Mrs gSAa bls fuEukuq lkj fd;k x;k gS& start->next = ( struct stud * ) malloc ( sizeof ( struct stud ) );
Fke Memory Block dk start ,d Pointer gS vkSj next Hkh ,d Pointer gSA Start es a Structure ds izFke Address gSA bl Memory Block es a ,d Pointer Variable next gSA ;fn bl next dks Hkh Memory esa dksbZbZ Memory Block cuk dj mldk Address ns fn;k tk,] rks blesa Hkh ,d Memory Block dk xkA bl Address }kjk ml Memory esa Hkh eku Store fd;s tk ldrs gS aA bl izdkj ds Address gksxkA [kyk cu tkrh gSA geus start dks ,d Structure izdkj ds Memory Declaration ls ,d izdkj dh J` a[kyk block dk Address iznku fd;k gSA bl start }kjk ge ml Structure es a eku Store dj ldrs gSaA tSlk fd start->roll_no = 200; and start->next = NULL; statement }kjk fd;k gSA ;fn bl Structure ds Member next dks] tks fd ,d Pointer Member gS] NULL djus ds ctk; ,d Memory Block cuk dj ml Memory Block dk Address ns fn;k tk,] rks bl Structure izdkj ds Pointer Variable es a] cuk, x, Memory Block dk Address gksxkA bl Memory Block esa ge okil roll_no o next uke ds Variable es a fdlh vU; Memory Block dk Address store dj ldrs gSAa bl izdkj ls ge pkgs ftruh la[;k [;k esa nodes cuk ldrs gS a vkSj ,d nw ljs dks Link dj ldrs gS aA blh fu;e ij pyrs gq, start = (struct stud *)malloc(sizeof(struct *)malloc(sizeof(struct stud)); statement }kjk start dks Structure dk ,d nku fd;k gSA fQj bl Structure ds Member next dks ,d vkS j node cukdj ml node dk Address iznku Structure izdkj dk Memory Block (node) cuk dj] ml Memory Block dk Address start>next=(struct stud *) malloc(sizeof(struct stud)); statement }kjk next dks fn;k gSA vc ;fn bl nw ljs node ds next uke ds Member dks dksbZbZ Memory Block cuk dj mldk Address ns fn;k tk,] rks ;s rhljk node cu tkrk gSA ;gh Øe vkxs ls vkxs pyk;k tk, rks ge vuUr rd nodes cuk ldrs gSaA tc ge ;s nodes cuk ysrs gS a] rks budks eku nsusus dk Hkh ,d fo”ks’k’k Øe gksrk gSA bl Øe bl Øe es a
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
ges a izFke node ds Address ls gks rs gq, ml gj node ls xqtjuk iMrk gS] ftles a eku Input djuk gSA ekuk bl izfØ;k }kjk geus rhu node cuk, rks ges a rhuks a nodes esa eku Input djus ds fy;s Øe ls fuEukuqlkj eku nsuk uk gksxk& izFke node dks eku nsuk uk //======================================================================== start->roll_no start->roll_no = 200; start->next = NULL; //========================================================================
u;k node cukuk vkS j bl node dk Address izFke node ds
dks nsuk& uk&
next
start->next = ( struct stud * ) malloc ( sizeof ( struct stud ) );
nw ljs
node
dks eku iznku djuk&
//======================================================================== start->next->roll_no = 251; start->next->next = NULL; //========================================================================
u;k node cukuk vkS j bl node dk Address nw ljs
node
ds
dks nsukA ukA
next
start->next->next = ( struct * ) malloc (sizeof (struct stud ) );
rhljs
node
dks eku iznku djuk&
//======================================================================== start->next->next->roll_no = 230; start->next->next->next = NULL; //========================================================================
Linked List
dk va r djus ds fy;s vafre node ds
Member next
dks
NULL
iznku djukA
bl izdkj dkj ls node cuk dj ge gj node dks eku iznku dj ldrs gSAa Linked List es a eku Initialize djrs le; ;fn dbZ nodes gks a rks dkQh cMs&cMs &cMs statements fy[kus iMrs gSAa bl vlqfo/kk ls cpus ds fy;s ge ,d vkSj Pointer Variable dk iz;ksx djrs gS a vkSj Loop }kjk node cukus o eku Input djus dk dke djrs gS aA ge ,d ckj es a ,d node cuk dj mlesa vU; nodes dks Insert djds vko”;drkuq lkj nodes cuk ldrs gSAa ge fdlh Hkh Linked List es a eq[;r% rhu izdkj ls nodes dks Insert dj ldrs gS& a 1 2 3
Linked List ds “kq: esa u;k node tksM dj A Linked List ds e/; es a u;k node tksM dj o Linked List ds va r es a u;k node tksM dj A
tc ges a fdlh Linked 1
List
dh “kq:vkr esa u;k node tksMuk Muk gks] rc ges a fuEu Øe es a dke djuk gks rk gS&
;fn izFke Pointer start es a NULL gS rks bldk eryc gks rk gS] fd Linked List vHkh “kq: gh ugha gqbZ gSA blfy;s ,d node Create fd;k tkrk gS vkS j ml node dk Address Linked List ds Start es a ns fn;k tkrk gSA ;s node Linked List dh izFke node gksrh gSA
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
2
;fn izFke Pointer start es a NULL ugha gS a rks bldk eryc gS fd Linked List igys ls gh cuh gqbZ gSA bl cuh gqbZ Linked List es a u;k node tksMus Mus ds fy;s u, node dk Address Pointer start dks ns fn;k tkrk gS vkSj u, node ds next Member dks start dk Address ns fn;k tkrk gSA ,lk djus ij Start u, node dks Point djrk gS vkSj u, Node dk Pointer ml node dks Point djrk gS ftls igys Start Point dj jgk FkkA
;fn Linked List “kq: gh ugha gqbZ gS ;kuh struct stud *start = NULL, *newnode;
rks u;k node cuk,s axs vkSj bl u, node dk Address start dks ns ns a sxAs vc bl node dks eku Initialize djs axs lkFk gh bl newnode ds next Member dks NULL dj ns axs xAs bldk eryc ;s gksxk fd bl bZ node Linked List es a ugha gSA newnode ds ckn dksbZ
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
newnode = ( struct stud * ) malloc ( sizeof ( struct stud ) );
newnode Roll_no
Next
start = newnode; start->roll_no =200; start->next = NULL;
ekuk u,
Node dk Address 2020 gS rks bl u, node dk Address start dks nsus us ls start dk xkA Address 2020 gks tk,xk vkSj bl newnode ds Members dks start }kjk eku iznku fd;k tk lds xkA bl izdkj dkj ls Linked List dh “kq:vkr :vkr gks tk,xhA vc ekuk dh Åij crkbZ xbZ fLFkrh ds ckn Linked List dh “kq:vkr gks pqdh gS vkSj blh Linked List es a ,d u;k node Linked List dh “kq:vkr es a tksMuk gS] rks blds fy;s ,d u;k node fuEukuqlkj cuk,axs& newnode = ( struct stud * ) malloc ( sizeof ( struct stud ) );
vc bl u,
node dks Linked List esa tksMus Mus ds fy;s loZizFke bl node ds next Member dks Pointer uk gksxk vkSj mlds ckn bl u, node dk Address start dks ns ns axs xs Variable start dk Address nsuk ftlls start vc bl u, node dks point djsxk vkSj bl u, node dk Member next igys okys node dks point djsxkA ;kuh newnode->next=start; start=newnode;
;fn blh izdkj ls vkxs dk Øe c
List
dks rc rd c
Creating Linked List ge tkurs gSa fd fdlh Hkh Linked List ds nks Hkkx gksrk gSA igys Hkkx es a fdlh Record ds Data Items gks rs gS a vkSj nw ljs Hkkx es a ,d Pointer gks rk gS tks Linked List ls Linked fdlh Data Item dks Point djrk gSA Data dks Memory esa Store djus ds bl rjhds esa ge Structures dk iz;ks ;ksx dj ldrs gS aA fuEu f[k,& Structure dks nsf[k,& //======================================================================== struct LIST { //Information Part int INFO;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
//Link Part struct LIST *LINK }; //========================================================================
;gka geus bl Structure es a ds oy nks Data Items dks gh Member ds :i es a fy;k gSA ;fn ge pkgsa rks Information Part es a fdlh Record ds fofHkUu Data Items ds fy, Member Variables Create dj ldrs gSaA pw afd f d ge tkurs gSa fd ftl Data Type dk Address ges a fdlh Pointer Variable es a Store djuk gks rk gS gesa mlh Data Type dk Pointer Variable Create djuk iMrk gSA blhfy, geus Link Part esa LIST izdkj dk ,d Pointer Variable LINK Create fd;k gSA ;s Pointer fdlh LIST izdkj ds nw ljs Data Item ds Memory Block ds Address dks Store dj ldrk gSA tc fdlh Linked List dh “kq:vkr ugha gqbZb Z gks rh gS rc ge dg ldrs gSa fd Linked List vHkh START ugha gqbZ gSA ;kuh ;fn START ,d LIST izdkj dk Variable gks vkSj START dk eku NULL gks rks ge dg ldrs gS a fd vHkh Linked List Start ugha gqvk vk gSA fdlh Linked List dks Create djus dk eryc gks rk gS fd Linked List esa vHkh dksbZbZ Hkh Data Element ugha gS ;kuh START esa NULL Store gSA bl fLFkfr es a ;fn ge LIST izdkj dk dksbZbZ Memory Block Create djrs gSa vkSj mldk Address START es a ns nsrs gSa] rks Linked List dh “kq:vkr :vkr gks tkrh gSA pw a fd fd tks Linked List “kq: gks jgh gS mles a dsoy ,d gh Node gS] tks fd geus Currently Create fd;k gS] blfy, bl Currently Created Node ds LINK es a gesa NULL Store djuk iMrk gS ftldk eryc gks rk gS fd Linked List es a ds oy ,d gh Data Element ;k Node gSA bl iw js Process dk Algorithm ge fuEukuqlkj fy[k ldrs gS a] tgka LIST ,d Linked List gSA START LIST izdkj dkj dk ,d Pointer Variable gS tks Linked List ds Start dks Indicate djrk gSA PTR Create gksusus okys u, Data Element ;k Node dk Pointer gSA Starting New Linked List Algorithm //========================================================================
1
IF START = NULL then PTR = CREATE NEWNODE [ Create Newnode and Assign the Address to PTR of Created Newnode. ]
PTR[INFO] = ITEM [ Insert the ITEM in the INFO Part of the newly Created Node. ]
PTR[LINK] = NULL [ Insert NULL in the LINK Part of the newly Created Node which is indicating the end of the Linked List. ]
START = PTR [ Give the Address of newly created node PTR to START so that START may point newly created first node PTR of the Linked List. ]
EXIT //========================================================================
Memory Allocation pw afd f d tc Memory esa dksbZbZ Data Stored ugha gksrk gS] rc Hkh Memory dk gj Memory Location vkil esa ,d Linked List ds :i es a Linked jgrk gSA ;s lHkh Locations Free gks rh gS a] ftues a Garbage Values gks rh gS aA bUgs a vko”;drkuq lkj dksbZbZ vU; Linked List Use djrk gSA bl Memory Locations dh Linked List dks AVAILABLE SPACE dgk tkrk gS vkS j AVAILABLESPACE AVAILABLESPACE fy[kk tkrk gSA bles a Hkh ,d Pointer gksrk gS tks vius vxys Free Space dk Address Stored j[krk gSA bl Pointer dks Hkh ge
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
dg ldrs gS aA tc fdlh vU; Linked List }kjk bl AVAILABLESPACE uke dh Linked List es a ls fdlh Free Memory Location dks Use fd;k tkrk gS rc ml Memory Location dk Link AVAILABLESPACE AVAILABLESPACE Linked List ls VwV tkrk gS vkSj Create gksusus okyh ubZ Linked List ls og Location Linked gks tkrk gSA bls ge fuEu fp= }kjk izn f”kZ f”kZr dj ldrs gS a tgka gekjh Linked List es a us okyk u;k Node AVAILABLESPACE V s gq, ,d Node dks fdlh izdkj dkj ls Add gksus AVAILABLESPACE Linked List ls VwVs Use djrk gS] bls iznf”kZ nf”kZ r fd;k x;k gS& LINK
bl fp= dks ns[k [k dj le>k tk ldrk gS fd tc ge fdlh Linked List esa u;k Node Add ;k Create AVAILABLESPACE dh tks Linked List gS] mlesa ls ,d dj jgs gks rs gS a rks okLro esa gekjh RAM es a AVAILABLESPACE Node Delete gks rk gS vkSj og Node ml Linked List es a Add gks tkrk gS ftlesa u;k Node Insert ;k Add fd;k tk jgk gS ;k ubZ Linked List Create dh tk jgh gSA blh rjg ls tc fdlh Linked List esa ls fdlh Node dks Delete fd;k tkrk gS rks okLro esa og Node AVAILABLESPACE Linked List es a Add fd;k tk jgk gks rk gSA tc fdlh Linked List es a u;k Node Create djds mls Point djus ds fy, mldk Address START dks fn;k tkrk gS rks bldk eryc gksrk gS fd START esa ml Node dk Address fn;k tk jgk gS] ftls Node Create djus ls igys AVAILABLESPACE AVAILABLESPACE uke Pointer Point dj jgk FkkA Figure A es a ge ns[k [k ldrs gS a fd START ml Node dks Point dj jgk gS ftldk Address 5 gS vkSj START dk igyk Node ml Node dks Point dj jgk gS ftldk Address 10 gSA blh rjg ls AVAILABLESPACE AVAILABLESPACE Pointer ml Node dks Point dj jgk gS ftldk Address 10 gS rFkk AVAILABLESPACE AVAILABLESPACE Linked List dk igyk Node ml Node dks Point dj jgk gS ftldk Address 100 gSA AVAILABLESPACE Linked List ds igys Node dks START dh Linked List esa Add fd;k tkrk tc AVAILABLESPACE gS] rc START dk igyk Node AVAILABLESPACE ds igys Node dks Point djus yxrk gS] ftldk Address 10 gS vkSj AVAILABLESPACE AVAILABLESPACE dk igyk Node ml Node dks Point djus yxrk gS ftldk Address 20 gSA blh izdkj ls vc AVAILABLESPACE AVAILABLESPACE Linked List igys Node dks NksM ns rk gS vkSj AVAILABLESPACE ml Node dks Point djus yxrk gS ftldk Address 100 gSA bl izdkj ls AVAILABLESPACE us ij fdlh vU; Linked List esa u;k Node Insert gks rk gS vkSj fdlh Linked List ls Node Delete gksus Linked List ls dksbZ Node Delete gksus ij AVAILABLESPACE AVAILABLESPACE Linked List esa u;k Node Insert gks rk gS A bl iw js Discussion ds vk/kkj ij ge pkgs a rks fdlh Linked List dks Start djus ds fy, fiNys i`’B ij tks Algorithm mls fuEukuqlkj Hkh fy[k ldrs gSa&
Starting New Linked List Algorithm //========================================================================
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
1
IF START = NULL then PTR = AVAILABLESPACE [
Assign
that
Node
to
New
Linked
List
which
Currently
Points
AVAILABLESPACE AVAILABLESPACE Linked List’s Pointer. ]
AVAILABLESPACE = AVAILABLESPACE[LINK] AVAILABLE SPACE[LINK] [ Assign Next AVAILABLESPACE NODE to AVAILABLESPACE Pointer. ]
PTR[INFO] = ITEM [ Insert the ITEM in the INFO Part of the newly Created Node. ]
PTR[LINK] = NULL [ Insert NULL in the LINK Part of the newly Created Node which is indicating the end of the Linked List. ]
START = PTR [ Give the Address of newly created node PTR to START so that START may point newly created first node PTR of the Linked List. ]
2
EXIT
//========================================================================
Garbage Collection pw afd f d ge tc Hkh fdlh Linked List ls fdlh Data Item dks Delete djrs gS a rks ml Data Item }kjk Reserve dh xbZ Memory Free gks tkrh gSA bl Free Memory dks okil AVAILABLESPACE AVAILABLESPACE us okyk lkjk Space Linked List es a Link djus ds fy, ,d rjhds dh t:jr gks rh gS] ftlls Free gksus okil fdlh vU; Data Item }kjk Use fd;k tk ldsA ;s dke lkekU;r;k Operating System gekjs fy, djrk jgrk gSA ;s dke ftl rjhds }kjk gks rk gS ;kuh ftl rjhds }kjk Deleted Nodes ls Free gksusus okyk lkjk Space Reuse ds fy, okil AVAILABLESPACE Linked List es a Collect gks rk jgrk gS] ml Free Space ds Collection dks Garbage Collection dgk tkrk gSA
Overflow and Underflow AVAILABLESPACE Linked List es a Space gh ugha gks rk gS dbZ ckj u;k Node Create djus ds fy, AVAILABLESPACE ;kuh Free Space List Empty gks rk gSA bl fLFkfr dks lkekU;r;k Overflow dgk tkrk gSA bl fLFkfr es a AVAILABLESPACE AVAILABLESPACE = NULL gks rk gSA tc ge fdlh Empty Linked List ds Data Item dks dgrs gSaA D;ks afd fd bl fLFkfr esa Delete gksusus ds fy, dksbZbZ esa START = NULL gksrk gSA
Delete djrs gS a] rks ml fLFkfr dks Underflow Data Item ;k Node gks rk gh ugha gSA bl fLFkfr
;fn ge fiNys
Algorithm dks Implement djrs gq, dksbZbZ Program cukuk pkgs a rks gesa AVAILABLESPACE AVAILABLESPACE Linked List dks Manage djus dh dksbZ bZ t:jr ugha gks rh gSA gekjk Computer Lo;a gh bl Linked List dks Manage o Update djrk jgrk gSA bl fLFkfr es a ge dksbZ ubZ Linked List Create djus ds fy, bl Algorithm dks fuEukuq lkj Function ds :i esa Implement dj ldrs gS& a Function //======================================================================== START = NULL; //This Declaration is Declared in Main Function CREATE(struct LIST **NEWNODE, ITEM) {
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
struct LIST *temp, *NEWNODE; if(*PTR == NULL) //[IF START = NULL ] then Create new NODE { temp = (struct LIST *)malloc(sizeof(struct LIST)); temp->INFO = ITEM; temp->LINK = NULL; *PTR = temp; } } //========================================================================
bl Function es a Argument Variable gSAa bldk eryc ;s gS fd Variable NEWNODE ds vkxs nks * fpUg yxs gq, bl Variable esa fdlh vU; Pointer Variable dk Address Store gksxkA xkA
INSERTING New NODE at the End of the LIST tc fdlh Linked List dh “kq:vkr gks pqdh d h gks ;kuh START = NULL uk gks rc u;k node Add djus ds fy, ges a fuEu dke djus gks rs gSSa&
Linked List
ds va r es a
1
,d Structure izdkj dk u;k Pointer Variable ysdj Loop dks rc rd pykrs gS]a tc rd fd Linked List dk va r ugha vk tkrk gSA
2
tc
Linked List ds va r es a igq ap tkrs gSa] rc LINK Part dks NULL ds LFkku ij ns ns rs gSaA
3
u,
node
ds
next
u;s
node
dk Address
Linked list
ds vafre fre node ds
dk eku NULL dj ns rs gS aA
pw afd f d Linked igys rks ges a
d h gS ;kuh START dk eku NULL ugha gS] blfy, lcls List dh “kq:vkr igys gh gks pqdh Linked List ds vUr ij igqpuk apuk gksxkA fdlh Linked List dk vUr ogka gks rk gS tgka LIST[LINK] = NULL gksrk gSA blds fy, gesa Linked List dh Traversing djuh gksxhA fdlh Linked fØ;k dks TRAVERSING dgrs gSAa Traversing ds List ds lHkh Data Items dks Process djus dh izfØ;k fy, ge fuEUk Algorithm dk iz;ksx dj ldrs gSa] tgka LIST ,d Linked List gSA START Linked List dh “kq:vkr crkrk gSA INFO Data Element dk Information Part gS vkS j LINK vxys NODE dk Pointer gSA PTR ,d Pointer gS tks fd Currently Process gks jgs Data Item dks Point djrk gSA TRAVERSING A One – Way Linked List Algorithm //======================================================================== 1 SET PTR = START [ Initialize Pointer PTR with the Address of START ] 2 REPEAT Step 3 and 4 WHILE PTR <> NULL 3 SET PTR = PTR[LINK] [ PTR now Points to Next NODE ] 4 PROCESS PTR[INFO] [ Process the Data of the Node ] [ End of Step 2 Loop ] 5 EXIT //========================================================================
pw afd f d Linked List dh “kq:vkr :vkr igys gh gks pqdh gS vkSj gj Linked List dh “kq:vkr :vkr dk Address START es a gksrk gS] blfy, gesa ,d Variable PTR es a START ds Address dks ysuk uk gksxk xk rkfd ge START ds eku dks Change fd, fcuk Linked List dh fofHkUu Nodes dks PTR }kjk iz kIr dj lds aA ;fn ge START Pointer }kjk gh Linked List dh Traversing djrs gSa rks gekjh Linked List dh
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
“kq:vkr :vkr dks Point djus okyk Variable START dk Address Damage gks tk,xk vkS j fQj ;fn ge okil ls Linked List dh Traversing djuk pkgs]a rks ge ,lk ugha dj ldsaxs xAs D;ks afd gekjh Linked List dh “kq:vkr dk Pointer gh Damage gks pqdk gksxk vkSj START gekjh Linked List ds vfUre Node dks Point dj jgk gksxkA ;kuh ;fn ge START Pointer dk iz;ksx Traversing ds fy, djrs gSa rks ge ,d gh fd gekjs bl Traversing es a vius lkjs Nodes dks Damage dj ns axsA ,lk blfy, gksrk gS D;ksfd Traversing Algorithm es a START ,d Actual Argument ds :i esa vkrk gSA blfy, ;fn START dk eku Change fd;k tk, rks okLrfod START dk eku Hkh Change gks tk,xk tks fd ugha gksuk uk pkfg,A blhfy, geus PTR es a START dk Address fy;k gS vkSj PTR }kjk Linked List dh Traversing dh gSA D;ks afd fd PTR mlh Node dks Point dj jgk gS ftls START Point dj jgk gSA ge tkurs gS a fd fdlh Hkh Linked List dk vUr ges a”kk ”kk LINK = NULL gksusus ij gksrk gS] blfy, ,d Loop }kjk Loop ds gj Iteration ij PTR es a gj vxys Node dk Address Store fd;k x;k gS tc rd fd PTR dk eku NULL ugha gks tkrkA bl Algorithm dk iz;ksx djds ge fuEukuqlkj ,d Function fy[k ldrs gSa tks fdlh Linked List ds vUr ij igqaprk prk gSA Function //======================================================================== void GoToEnd(struct LIST **PTR) { while(PTR != NULL) PTR = PTR->LINK; } //========================================================================
pw afd f d ge fdlh igys ls Created Linked List ds vUr esa ,d u;k NODE Add djuk pkgrs gS a] blfy, Linked List ds vUr ij igq a pus ds ckn ges a ,d u;k Node Create djuk gks rk gS vkSj ml Node dk uk Address igys ls cuh gqbZ Linked List ds vfUre Node ds LINK Part es a ftles a NULL Stored gS] ns uk gks rk gS A ,lk djus ij Created u;k Node fiNys Node ls Link gks tkrk gSA vUr es a gesa Create gksusus okys u, Node ds Link Part ds LINK dks NULL djuk iMrk gS] ftldk eryc gks rk gS fd bl Node ds ckn dksbZbZ Node Linked List ls Linked ugha gSA bl iw jh izfØ;k dks /;ku ls le>us ij ge ns[k [k ldrs gS a fd fdlh igys ls Started Linked List ds vUr es a u;k Node INSERT djus ds fy, ges a nks dke djus iMrs gS a% igyk ;s fd ge Linked List ds vUr ij igq a p as vkSj nw ljk ;s fd ge u, Node dks fiNys Node ls u aks dkeksa ds fy, ge fuEukuqlkj ,d gh Algorithm fy[k ldrs gSa& Link djs aA bu nksuks Algorithm //======================================================================== 1 SET PTR = START [ Initialize Pointer PTR with the Address of START ] 2 REPEAT Step 3 WHILE PTR <> NULL 3 SET PTR = PTR[LINK] [ PTR now Points to Next NODE ] [ End of Step 2 Loop ] 4 CREATE NEWNODE [ Create new Node from AVAILABLESPAC E Linked List ] 5 NEWNODE[INFO] = ITEM 6 NEWNODE[LINK] = NULL 7 PTR[LINK] = NEWNODE 8 EXIT //========================================================================
bl Algorithm dk iz;ksx djds ge fuEukuqlkj ,d Function cuk ldrs gSa tks fdlh Linked List ds vUr esa u;k Node INSERT djrk gS& Function //========================================================================
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
INSERT_END(struct LIST **PTR, ITEM) { struct LIST *NEWNODE, *temp; //Go to End of the Linked List while(temp->LINK != NULL) temp = temp->LINK; //Create New Node NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO NEWNODE->INFO = ITEM; NEWNODE->LINK NEWNODE->LINK = NULL; temp->LINK = NEWNODE; } //========================================================================
tc ge igyh ckj dksbZ Linked List Create djrs gSa rc okLro es a ge START es a ,d u, Node dk bZ Linked List dks Point Address ns jgs gksrs gS a ;kuh ;fn ;s ekuk tk, fd START fdlh igys ls cuh gqbZ dj jgk gS rks Create gksus okyk u;k Node bl Start ds vUr es a tqMrk gSA bl fLFkfr es a ge CREATE() o INSERT_AT_END() nksuks u aks Functions dks fuEukuq lkj ,d gh Function ds :i es a fy[k ldrs gSa& //======================================================================== void INSERT_AT_END(struct INSERT_AT_END(struct LIST **PTR, int ITEM) { struct LIST *temp, *NEWNODE; if(*PTR == NULL) //[IF START = NULL ] then Create new NODE { temp = (struct LIST *)malloc(sizeof(struct LIST)); temp->INFO = ITEM; temp->LINK = NULL; *PTR = temp; } else { struct LIST *temp = *PTR; //Go to End of the Linked List while(temp->LINK != NULL) temp = temp->LINK; //Create New Node NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO NEWNODE->INFO = ITEM; NEWNODE->LINK NEWNODE->LINK = NULL; temp->LINK = NEWNODE; } } //========================================================================
bl Function dk iz;ksx djrs gq, ge fuEukuqlkj ,d Program cuk ldrs gS& a //======================================================================== #include #include #include
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Structure //======================================================================== struct LIST { //Information Part int INFO; //Link Part struct LIST *LINK; }; struct LIST *START = NULL; //========================================================================
Function //======================================================================== void INSERT_AT_END(struct LIST **PTR, int ITEM) { struct LIST *temp, *NEWNODE; if(*PTR == NULL) //[IF START = NULL ] then Create new NODE { temp = (struct LIST *)malloc(sizeof(struct LIST)); temp->INFO = ITEM; temp->LINK = NULL; *PTR = temp; } else { struct LIST *temp = *PTR; //Go to End of the Linked List while(temp->LINK != NULL) temp = temp->LINK; //Create New Node NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO NEWNODE->INFO = ITEM; NEWNODE->LINK NEWNODE->LINK = NULL; temp->LINK = NEWNODE; } } //========================================================================
main() Function Funct ion //======================================================================== main() { struct LIST *ptr; char choice= 'y'; int ITEM; clrscr(); while(choice=='y' || choice=='Y') {
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
printf("\n Enter a NUMBER in Information Part : " ); scanf("%d", scanf("%d", &ITEM) INSERT_AT_END(&START, ITEM); printf("\n Do You wish to Continuous ? Y/N fflush(stdin); choice = (char)getchar();
");
} ptr = START; while(ptr) { printf("\n Inserted Number \t %d", ptr->INFO); ptr = ptr->LINK; } free(ptr); free(START); getch(); } //========================================================================
Output //===================================================================== Enter a NUMBER in Information Part : 123123 Do You wish to Continuous ? Y/N y Enter a NUMBER in Information Part : 787878 Do You wish to Continuous ? Y/N y Enter a NUMBER in Information Part : 989898 Do You wish to Continuous ? Y/N y Enter a NUMBER in Information Part : 784112 Do You wish to Continuous ? Y/N n Inserted Number 123123 Inserted Number 787878 Inserted Number 989898 Inserted Number 784112 //========================================================================
blh Concept ij ,d vkS j Program fuEukuqlkj gS] ftles a fo/kkFkhZ;ksa ds Records dks Linked List o Dynamic Memory Allocation ds ek/;e ls Input fd;k x;k gS] Memory es a Store fd;k x;k gS vkSj vUr esa lHkh Input fd, x, Data Items dks Display fd;k x;k gS& Program //======================================================================== #include #include #include struct stud { int roll_no; long int pin_code;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
struct stud *next_rec; }; struct stud *start = NULL; main() { struct stud *newnode,*pt r; char choice= 'y'; clrscr(); while(choice=='y' || choice=='Y') { newnode=(struct stud *)malloc(sizeof(struct stud)); newnode->next_rec=NULL; printf("\n Enter Roll Number : " ); scanf("%d", &newnode->roll_no); printf("\n Enter Pincode: "); scanf("%ld", &newnode->pin_code); if ( start == NULL) start = newnode; else { newnode->next_rec newnode->next_rec = start; start = newnode; } printf("\n Do You wish to Continuous ? Y/N fflush(stdin);
");
choice = getchar(); } ptr = start; while(ptr) { printf("\n Roll Number \t %d", ptr->roll_no); printf("\n Pin Code \t %ld", ptr->pin_code); ptr = ptr->next_rec; } free(ptr); free(start); free(newnode); getch(); } //========================================================================
Output //======================================================================= Enter Roll Number : 1 Enter Pincode: 111111 Do You wish to Continuous ? Y/N y Enter Roll Number : 2 Enter Pincode: 222222
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Do You wish to Continuous Enter Roll Number : 3 Enter Pincode: 333333 Do You wish to Continuous Enter Roll Number : 4 Enter Pincode: 444444 Do You wish to Continuous Enter Roll Number : 5 Enter Pincode: 555555 Do You wish to Continuous
? Y/N
y
? Y/N
y
? Y/N
y
? Y/N
n
Roll Number 5 Pin Code 555555 Roll Number 4 Pin Code 444444 Roll Number 3 Pin Code 333333 Roll Number 2 Pin Code 222222 Roll Number 1 Pin Code 111111 //========================================================================
bl iz ksxz xkz e es a Structure cukus ds ckn Structure es a dksbZbZ Link List ugha gSA blfy;s Linked List dh “kq:vkr :vkr ds start Pointer dks NULL fd;k x; k gSA vko”;drkuq lkj dbZ node cukus o mUgs a Linked List esa tksMus Mus ds fy;s geus while loop dk iz;ksx fd;k gSA bl Loop es a lcls igys ,d Memory Block cuk;k x;k gS vkSj ml Memory Block dk Address newnode uke ds var dks fn;k x;k gSA fQj newnode->next_rec=NULL newnode->next_rec=NULL;; statement }kjk bl cukbZ xbZ node dks Linked List dk vafre fre node cuk;k x;k gSA fQj bl node esa Pointer new }kjk eku Input fd;k x;k gSA if (start = = NULL) statement }kjk ;s check fd;k tkrk gS fd D;k start dk eku NULL gS ;k ughaA ;s blfy;s check fd;k tkrk gS D;ks afd ;fn Linked List es a add fd;k tkus okyk node Linked List dk izFke Fke node gS] rks start dk eku NULL gks rk gSA ;gka Linked List es a Add gksusus okyk newnode igyk node gSA blfy;s start dk eku NULL gh gksxk vkS j if condition lR; gksxhA ;fn if Condition lR; gks rh gS] rks bl node dks Liked list dk igyk node cukus ds fy;s bl node dk Address start = newnode; newnode; statement }kjk start dks fn;k x;k gSA bl izdkj ls Linked List “kq: gks tkrh gSA vc while loop gels iw a Nrk gS fd D;k ge vkS j Records Input djuk pkgrs gSAa ;fn ge ;gka Y Press djrs gS a rks okil ,d Memory Block cukrk gS vkSj okil ml Memory Block dk Address newnode dks izkIr gks rk gSA bl ubZ node ds Member fd Linked List “kq : nexr_rec dks okil NULL dj fn;k tkrk gSA okil if condition check gks rh gSA pw a fd gks pqdh gS blfy;s if condition vlR; gks tkrh gS vkSj else ds statements dk Execution gksrk gSA ;gka newnode->next_rec newnode->next_rec = start; statement }kjk bl ubZ node ds next_rec esa Stored NULL dks gVk dj a fLFkr Address dks Mky fn;k tkrk gS vkSj start = newnode; newnode; statement }kjk NULL ds LFkku ij start es start es a u, node dk Address Mky fn;k tkrk gSA bl izdkj ftruh ckj Loop pyrk gS] mruh gh ckj start es a ml u, node dk Address vk tkrk gS vkSj bl u, node es a next_rec es a ml node dk Address Mky fn;k tkrk gS] tks fd while loop ds fiNys Iteration esa cuk FkkA Dynamic Memory Allocation es lkjk dke Allocated Memory ds Address dks store djus okys Pointer }kjk fd;k tkrk gSA blfy;s Address rc rd croll_no); o printf("\n Pin Code \t %ld", ptr->pin_code); statements }kjk izFke node ds ekuks a dks Print djok;k tkrk gSA fQj ptr = ptr->next_rec statement }kjk ptr vxys node dk
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Address store djok;k tkrk gSA loop dh Condition lR; gks rh gS vkSj nw ljs node ds eku Screen ij print gks tkrs gSaA ptr = ptr->next_rec statement vc rhljs node ds ekuks a dks print djrk gSA ;gh Øe rc rd pyrk jgrk gS] tc rd fd while loop Terminate uk gks tk, vkSj loop rc Terminate gks rk gS] tc ptr vafre fre node ds ekuks a dks print djrk gSA ml le; vafre fre node ds next_rec dk eku NULL gks rk gS ;kuh while dk eku while(0) gks tkrk gSA ;gka vkius ns [kk [kk fd tks eku lcls va r esa Input fd;k Fkk og eku lcls igys izkIr gksrk gS vkS j tks eku lcls igys Input fd;k Fkk og eku lcls ckn es a IkzkIr gks rk gSA bl izfØ;k fØ;k dks LIFO (Last In First Out) dgrs gSaA
INSERTING New NODE at the BEGINNING of the LIST tc dksbZbZ Linked List igys ls gh Created gks vkSj mldh “kq:vkr :vkr es a ges a u;k Node Add djuk gks] ;kuh START esa u, Create fd, x, Node dk Address nsuk uk gks] rc lcls igys ges a ,d Node Create Created Node ds djuk gks rk gSA fQj START esa ftl Node dk Address gks rk gS og Address Newly Created uk gksrk gS vkSj START es a Newly Created Node dk Address nsuk uk gks rk gSA ;s dke djus ds LINK es a nsuk fy, ge fuEUk Algorithm dk iz;ks ;ksx dj ldrs gS a& Algorithm //========================================================================
Procedure: ADD_AT_BEGNNING(LIST, ITEM) SET PTR = START CREATE NEWNODE NEWNODE[INFO] = ITEM NEWNODE[LINK] = PTR SET START = NEWNODE EXIT //========================================================================
bl Algorithm es LIST ,d Linked List gS ftles a igys ls ,d ;k ,d ls vf/kd Data Items Inserted gS aA NEWNODE Create gksusus okyk u;k Node gSA START es a igys ls cuh gq bZbZ Linked List dk Address gSA bl Algorithm dk iz;ks ;ksx djds ge fuEukuq lkj ,d Function Create dj ldrs gSa& //======================================================================== void INSERT_AT_BEGNNING(struct LIST **PTR, int ITEM) { struct LIST *NEWNODE; NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO = ITEM; NEWNODE->LINK = *PTR; *PTR = NEWNODE; } //========================================================================
bl Algorithm dk iz;ksx ge fuEukuqlkj main() Function es a dj ldrs gSa& Program //======================================================================== #include #include #include #include
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
static int total=0;
//Structure //======================================================================== struct LIST {
//Information Part int INFO;
//Link Part struct LIST *LINK; }; struct LIST *START = NULL; //========================================================================
//Function //======================================================================== void INSERT_AT_BEGNNING(struct LIST **PTR, int ITEM) { struct LIST *NEWNODE; NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO = ITEM; NEWNODE->LINK = *PTR; *PTR = NEWNODE; total++; } //========================================================================
//Function //======================================================================== void INSERT_AT_END(struct INSERT_AT_END(struct LIST **PTR, int ITEM) { struct LIST *temp, *NEWNODE; if(*PTR == NULL) //[IF START = NULL ] then Create new NODE { temp = (struct LIST *)malloc(sizeof(struct LIST)); temp->INFO = ITEM; temp->LINK = NULL; *PTR = temp; } else { struct LIST *temp = *PTR; //Go to End of the Linked List while(temp->LINK != NULL) temp = temp->LINK; //Create New Node NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO NEWNODE->INFO = ITEM; NEWNODE->LINK NEWNODE->LINK = NULL; temp->LINK = NEWNODE;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
} total++; } //========================================================================
//Function //======================================================================== void DISPLAY(struct LIST **PTR) { struct LIST *temp; temp = *PTR; while(temp != NULL) { printf("\n Inserted Number \t %d", temp->INFO); temp = temp->LINK; } } //========================================================================
//main() Function //======================================================================== main() { char choice; int ITEM; clrscr(); while(1) { printf("\n1. Enter Number at the BEGNNING of the LIST"); printf("\n2. printf("\n2. Enter Number at the END of the LIST"); printf("\n3. Display Data Items"); printf("\n4. Total Data Items"); printf("\n5. EXIT"); scanf("%d", &choice); switch(choice) { case 1: printf("\n Enter a NUMBER at the BEGINNIN of the LIST : " ); scanf("%d", &ITEM); INSERT_AT_BEGNNING(&START, ITEM); break; case 2: printf("\n Enter a NUMBER at the END of the LIST : " ); scanf("%d", &ITEM); INSERT_AT_END(&START, INSERT_AT_END(&START, ITEM); break; case 3: DISPLAY(&START); break; case 4: printf("\nTotal Number of Data Items are %d ", total); break;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
case 5: exit(1); } } } //========================================================================
INSERTING New NODE at any MIDDLE Position of the LIST tc ges a fdlh Linked List ds e/; es aa u;k node tksMuk gks] rc ges a fuEu Øe esa dke djus gks rs gS& a 1 lcls igys ges a ml node rd igqpuk apuk gks rk gS] ftl node ds ckn u;k node Add djuk gSA 2 fQj ubZ node es a mlls vxyh node dk Address store djrs gSAa 3 fiNyh node es a ubZ node dk Address store djrs gSaA bls izfØ;k dks fuEu fp=kuqlkj le> ldrs gSa& Structure1 Item1
Structure2 Item2
Structure3 Item3
Next
NULL
newnode
bl dke ds fy, ge fuEu Algorithm fy[k ldrs gS a& //======================================================================== INSERT_AT_MIDDLE(INFO, LINK, LOCATION, ITEM) 1 CREATE NEWNODE 2 NEWNODE[INFO] = ITEM 3 IF LOCATION = NULL then SET NEWNODE[LINK] = START SET START = NEWNODE ELSE SET NEWNODE[LINK] = LOCATION[LINK] SET LOCATION[LINK] = NEWNODE 4 EXIT //========================================================================
bl Algorithm dk iz;ksx djds ge fuEukuq lkj Function fy[k ldrs gS a& Function //======================================================================== void INSERT_AT_MIDDLE(struct LIST **PTR, int ITEM, int LOCATION) { struct LIST *NEWNODE, *temp; int i; temp = *PTR;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
for(i=0; iLINK; if(temp == NULL) { printf("\nData Items are Less then LOCATION\n"); return; } } NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO = ITEM; NEWNODE->LINK = temp->LINK; temp->LINK = NEWNODE; total = COUNT(&START); } //========================================================================
bu lHkh Algorithms dk iz;ksx djds fuEukuqlkj Use dj ldrs gSa&
Functions Create
djus ds ckn mls
Main() Function
es a ge
Program //======================================================================== #include #include #include #include static int total=0;
//Structure //======================================================================== struct LIST { //Information Part int INFO; //Link Part struct LIST *LINK; }; struct LIST *START = NULL; //========================================================================
//Function //======================================================================== int COUNT(struct LIST **PTR) { int i = 1; struct LIST *temp; temp = *PTR; while(temp->LINK != NULL) { temp = temp->LINK; i++;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
} return i; } //========================================================================
//Function //======================================================================== void INSERT_AT_BEGNNING(struct LIST **PTR, int ITEM) { struct LIST *NEWNODE; NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO = ITEM; NEWNODE->LINK = *PTR; *PTR = NEWNODE; total = COUNT(&START); } //========================================================================
//Function //======================================================================== void INSERT_AT_MIDDLE(struct LIST **PTR, int ITEM, int LOCATION) { struct LIST *NEWNODE, *temp; int i; temp = *PTR; for(i=0; iLINK; if(temp == NULL) { printf("\nData Items are Less then LOCATION\n"); return; } } NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO = ITEM; NEWNODE->LINK = temp->LINK; temp->LINK = NEWNODE; total = COUNT(&START); } //========================================================================
//Function //======================================================================== void INSERT_AT_END(struct INSERT_AT_END(struct LIST **PTR, int ITEM) { struct LIST *temp, *NEWNODE; if(*PTR == NULL) //[IF START = NULL ] then Create new NODE { temp = (struct LIST *)malloc(sizeof(struct LIST)); temp->INFO = ITEM; temp->LINK = NULL; *PTR = temp;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
} else { struct LIST *temp = *PTR; //Go to End of the Linked List while(temp->LINK != NULL) temp = temp->LINK; //Create New Node NEWNODE = (struct LIST *)malloc(sizeof(struct LIST)); NEWNODE->INFO NEWNODE->INFO = ITEM; NEWNODE->LINK NEWNODE->LINK = NULL; temp->LINK = NEWNODE; } total = COUNT(&START); } //========================================================================
//Function //======================================================================== void DISPLAY(struct LIST **PTR) { struct LIST *temp; temp = *PTR; while(temp != NULL) { printf("\n Inserted Number \t %d", temp->INFO); temp = temp->LINK; } } //========================================================================
//main() Function //======================================================================== main() { char choice; int ITEM, LOCATION; clrscr(); while(1) { printf("\n1. printf("\n2. printf("\n3. printf("\n4. printf("\n5. printf("\n6.
Enter Number at the BEGINNING of the LIST"); Enter Number after the Specified LOCATION of the LIST"); Enter Number at the END of the LIST"); Display Data Items"); Total Data Items"); EXIT");
printf("\n\nEnter Your CHOICE"); scanf("%d", &choice); switch(choice) { case 1: printf("\n Enter a NUMBER at the BEGINNING of the LIST : " );
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
scanf("%d", &ITEM); INSERT_AT_BEGNNING(&START, ITEM); break; case 2: printf("\n Enter a NUMBER at the MIDDLE of the LIST : " ); scanf("%d", &ITEM); printf("\nEnter LOCATION Number : "); scanf("%d", &LOCATION); INSERT_AT_MIDDLE(&START, ITEM, LOCATION); break; case 3: printf("\n Enter a NUMBER at the END of the LIST : " ); scanf("%d", &ITEM); INSERT_AT_END(&START, ITEM); break; case 4: DISPLAY(&START); break; case 5: printf("\nTotal Number of Data Items are %d ", total); break; case 6: exit(1); } } } //========================================================================
Searching in a Linked List ftl rjg ls fdlh Array esa ls ;fn fdlh Data Item dks Search djus ds nks rjhds gSa mlh rjg ls fdlh Linked List esa ls Hkh fdlh Data Item dks Search djus ds nks rjhds gksrs gSaA ekuyks fd LIST ,d Linked List gS vkSj ITEM og Item gS ftls Search djuk gS vkS j LOCATION og Memory Location gS tgka ij Search fd;k tkus okyk ITEM igyh ckj izkIr gks rk gSA ¼ ,d Linked List es a ,d gh izdkj dkj ds eku dbZ ckj dbZ LOCATIONS ij gks ldrs gS aA ½ ;gka igys Algorithm es a ;s ekuk x;k gS fd ftl LIST esa ls ITEM dh LOCATION dks Search fd;k tk jgk gS og LIST Sorted ugha gSA nw ljs Algorithm es a ;s ekuk tk jgk gS fd LIST SORTED gS ftles a ls Data Items dh LOCATION dks Search djuk gSA ge ;s Hkh eku dj py jgs gSa fd tks Data Item Search fd;k tk jgk gS og LIST es a ds oy ,d gh ckj ck j Store gks ldrk gS ;kuh Stored Data Item Unique gSA LIST is Unsorted ekuyks fd ge ftl LIST es a Data ITEM dks Search dj jgs gS a og LIST Sorted ugha gSA bl fLFkfr es a ges a LIST ds gj Data Item PTR[INFO] dks ,d PTR Pointer ls ls Traversing }kjk Search fd, tk jgs ITEM ls Check djuk gksxkA xkA ;kuh IF PTR[INFO] == ITEM then SET LOCATION = PTR
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
ELSE PTR = PTR[LINK]
bl Algorithm es a ges a nks Test djus gksxs axs ftles a igyk Test ;s r; djsxk fd Loop dc rd pysxkA xkA ;kuh Loop rc rd pyuk pkfg, tc rd fd PTR es a NULL uk vk tk, vkSj nw ljk Test ;s Check djsxk xk fd tks ITEM Search fd;k tk jgk gS og LIST esa miyC/k gS ;k ughaA ;fn ITEM LIST es a miyC/k gks rks uh pkfg, vU;Fkk ,d Message Display gksuk uk pkfg, tks crk, fd ITEM dh LOCATION Return gksuh Search fd;k tkus okyk ITEM LIST es a miyC/k ugha gSA blh iw jh izfØ;k dk Algorithm ge fuEukuqlkj fy[k ldrs gSa& UNSORTED SEARCHING Algorithm //======================================================================== UNSORTED_SEARCHING(LIST, LINK, INFO, ITEM, LOC, PTR) 1 2 3
SET PTR = START REPEAT Step 3 and 4 WHILE PTR <> NULL IF PTR[INFO] == ITEM then SET LOC = PTR and EXIT ELSE PTR = PTR[LINK] [ Now PTR Points next NODE ] [ End of IF Structure ] [ End of Loop Step 2 ] 4 SET LOC = NULL [ If Search is Unsuccessful ] 5 EXIT //========================================================================
bl Algorithm ds vk/kkj ij ge fuEukuq lkj ,d Function cuk ldrs gSa tks fdlh Linked List es a ls fdlh ITEM dks Search djrk gS vkSj ;fn ITEM izkIr gks tkrk gS rks mldh LOCATION Return djrk gSA ;fn ITEM izkIr ugha gks rk gS rks LOCATION es a NULL Store gks tkrk gS] ftldk eryc gksrk gS fd List esa Find fd;k tkus okyk ITEM miyC/k ugha gSA UNSORTED SEARCH Function //======================================================================== void SEARCH(struct LIST **PTR, int ITEM) { struct LIST *temp; int LOCATION=0 ; temp = *PTR; clrscr(); while(temp != NULL) { LOCATION++; if(temp->INFO == ITEM) { printf("\nSearched Data Element Found at the %d LOCATION \n", LOCATION); return ; } else temp = temp->LINK; } printf("\nData Item Not Found In The LIST \n"); } //========================================================================
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
LIST is Sorted ftl LIST es a ls Data Item dh Location dks Search fd;k tk jgk gS og LIST ;fn SORTED gks rks ge fuEu Algorithm dk iz;ks ;ksx djds Find dh tkus okyh ITEM dh LOCATION dk irk yxk ldrs gSAa bl Algorithm es a Hkh ges a LIST ds gj Node dks ITEM ls Test djuk iMrk gSA ;kuh bl Algorithm dh Complexity o fiNys Algorithm dh Complexity leku gksrh gSA ;kuh ;fn ge fdlh Linked List ij Binary Search Algorithm dk iz;ksx djds fdlh Data dh LOCATION iz kIr djuk pkgs a rks ge ,lk ugha dj ldrs gSAa ,d Linked List dh Binary Searching ugha dh tk ldrh gSA SORTED SEARCH Algorithm //========================================================================= SORTED_SEARCH(LIST, LINK, INFO, ITEM, LOC) SET PTR = START REPEAT Step 3 WHILE PTR <> NULL IF ITEM < PTR[INFO] then SET PTR = PTR[LINK] [ Now PTR points to next NODE ] ELSEIF ITEM = PTR[INFO] then SET LOCATION = PTR and EXIT [ Search is Successful ] ELSE SET LOCATION = NULL and EXIT [ ITEM not Exists in LIST ] EXIT //=========================================================================
bl Algorithm dk iz;ksx djds ge fuEukuqlkj ,d Function
Create
dj ldrs gS s& a
SORTED SEARCH Function //======================================================================== void SEARCH2(struct LIST **PTR, int ITEM) { struct LIST *temp; int LOCATION=0 ; temp = *PTR; clrscr(); while(temp != NULL) { LOCATION++; if(ITEM < temp->INFO) temp = temp->LINK; else if(temp->INFO == ITEM) { printf("\nSearched Data Element Found at the %d LOCATION \n", LOCATION); getch(); clrscr(); return ; } else { printf("\nData Item Not Found In The LIST \n"); getch();
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
clrscr(); return ; } } getch(); clrscr(); } //========================================================================
Sorting Structure dh Sorting dj ldrs gS a mlh rjg ls ge fdlh Linked List ftl rjg ls ge ,d Array Data Structure ds fofHkUu Data Items dh Hkh Sorting dj ldrs gSaA fdlh Linked List dh Sorting djus ds fy, ge fdlh Hkh Standard Algorithm dk iz;ksx dj ldrs gSaA ge tkurs gS a fd tc fdlh Data Structure dh Sorting dh tkrh gS rc ,lh fLFkfr vkrh gS fd ges a nks Data Elements dks vkil es a Exchange djuk iMrk gSA fdlh Linked List dh Sorting ds fy, tc ges a Data Elements dks Exchange djuk gksrk gS rc gekjs ikl ges a”kk ”kk nks rjhds gksrs gS a% fdlh Linked List dh Sorting ds fy, ;fn ge pkgs a rks fofHkUu Nodes ds Data Elements dks Exchange dj ys a vkSj ;fn pkgs a rks Nodes ds LINK dks vkil es a Change dj ys aA nksu aks gh rjhdks a esa Linked List dh Sorting gks tkrh gSA bl izfØ;k dks le>us ds fy, fuEu fp= nsf[k, f[k, ftlesa nksuks uksa rjhdks a dks vyx&vyx n”kkZ;k ;k x;k gS&
ekuyks fd bl Linked List esa Element 10 o 4 dks Exchange djuk gSA ;gka ij ds oy eku 4 ds LFkku ij 10 o 10 ds LFkku ij eku 4 dh Swapping gks tk,xh ysfdu fdu first o second }kjk Pointed Address es a fdlh rjg dk dksbZ bZ ifjorZu ugha gksxkA xkA bl izfØ;k dks ge fp= es a Hkh ns[k [k ldrs gS a fd INFO Part esa ekuks a dk ifjorZu gqvk gS ysfdu LINK Part ds Addresses dk ifjorZu ugha gqvk gSA nw ljs rjhds esa Data ds eku es a dksbZbZ ifjorZu ugha gqvk v k gSA cfYd LINK Part ds Addresses es a ifjorZu gqvk vk gSA bls fuEUk fp= esa ns[k [k ldrs gSAa
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
bu nksuks uksa gh rjhdksa esa igyk rjhdk mi;ksx esa ysuk ljy gS tcfd nw ljk rjhdk igys dh rqyuk esa vf/kd Efficient gSA ,lk blfy, gS D;ks afd fd ;fn INFO Part esa dksbZbZ Record gks ftles a dkQh vf/kd Fields gks a rks Sorting ds le; iwjs Record dks Exchange djuk gksxk tks fd vf/kd Time o Space Occupy djsxk] xk] tcfd nw ljs rjhds esa ds oy LINK Part dks gh Exchange djuk gksxkA xkA fdlh Linked List ds fy, Bubble Sort dk Algorithm fuEukuqlkj gksxk& xk& Bubble Sort Algorithm DATA PART //======================================================================== 1 SET K = N 2 REPEAT FOR I = 0 TO N-1 STEP I = I + 1 3 P = START 4 Q = P[LINK] 5 REPEAT FOR J = 1 TO K-1 STEP J = J + 1 6 IF P[INFO] > Q[INFO] 7 TEMP = P[INFO] 8 P[INFO] = Q[INFO] 9 Q[INFO] = TEMP [ End of IF Structure ] 10 P = P[LINK] 11 Q = Q[LINK] [ End of Inner Loop ] [ End of Outer Loop ] 12 EXIT //========================================================================
bl Algorithm es a N Data Elements ;k NODES dh dqy la[;k [;k gSA I o J Loop pykus okys Variables gS aA TEMP ,d Variable gS tks Data Exchanging ds le; mi;ksx esa vkrk gSA P o Q nks Linked [;k ij fuHkZ j gSA bl Algorithm ds vk/kkj ij ge Lists gS a vkSj K ,d Variable gS ftldk eku N dh la[;k fuEukuqlkj Bubble Sort dk Function Create dj ldrs gS a tks fdlh Linked List ds Data Elements dh Sorting djrk gS& Bubble Sort Function DATA PART //======================================================================== void LLBubbleSortDP(int N) {
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
int I, J, K, TEMP; struct LIST *P, *Q; K = N; for(I=0; ILINK; START->LINK; for(J=1; JINFO > Q->INFO) { TEMP = P->INFO; P->INFO = Q->INFO; Q->INFO = TEMP; } P = P->LINK; Q = Q->LINK; } } //========================================================================
bl Function es a START Linked List ds Start dks Indicate djrk gS tks fd ,d Global Variable gSA fdlh Linked List dh Sorting ds fy, ge Selection Sort Method dk Hkh iz;ks ;ksx dj ldrs gSaA Selection Sort dk Algorithm fuEukuqlkj fy[kk tk ldrk gS & Selection Sort Algorithm DATA PART //======================================================================== 1 P = START 2 REPEAT FOR I = 0 TO N-1 STEP I = I + 1 3 Q = P[LINK] 4 REPEAT FOR J = I + 1 TO J < N STEP J = J + 1 5 IF P[INFO] > Q[INFO] 6 TEMP = P[INFO] 7 P[INFO] = Q[INFO] 8 Q[INFO] = TEMP [ End of IF Structure ] 9 Q = Q[LINK] [ End of Inner Loop ] 10 P = P[INFO] [ End of Outer Loop ] 11 EXIT //========================================================================
bl Algorithm dk mi;ksx djds ge fuEukuq lkj Selection
Sort
dk Function fy[k ldrs gS a&
Selection Sort Function DATA PART //======================================================================== void LLSelectionSortDP(int N) { int I, J, K, TEMP; struct LIST *P, *Q; P = START; for(I=0; I
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
{ Q = START->LINK; START->LINK; for(J=I+1; JINFO > Q->INFO) { TEMP = P->INFO; P->INFO = Q->INFO; Q->INFO = TEMP; } Q = Q->LINK; } P = P->LINK; } //========================================================================
ge ns[k [k ldrs gSa Array Data Structure o Linked List Data Structure nksu aks es a gh Sorting ds Algorithm leku gh gS aA ds oy fy[ks tkus okys Syntax es a gh vUrj gksrk gSA ;s nksuks uksa Functions NODES ds INFO Part dh Exchanging ij vk/kkfjr gSaA ;kuh bl Sorting es a ges a Node ds INFO Part dh fd Linked List Data Structure ds INFO Part es a ,d ls vf/kd Fields Exchanging djuh iMrh gSA pw a fd gks ldrs gS aA ,ls es a ;fn ge bl rjhds dks Use djrs gSa rks gesa INFO Fields ds lHkh Data Elements dks Exchange djuk iMrk gSA tSls ekuyks fd fuEukuqlkj ,d Structure gS ftlds INFO Part es a fdlh Book dh fofHkUu Information gSaA Structure //======================================================================== struct Book { char name[20]; int price; int pages; int isbn_no; }; //========================================================================
;fn bl Structure ds fofHkUu Nodes dh Sorting djuh gks rks gesa fuEukuqlkj Exchanges djus gks axs xs& Outlines: //======================================================================== //Exchanging of Data Part strcpy(TEMP.name, P->name); strcpy(P->name, Q->name); strcpy(Q->name, TEMP.name); TEMP.price = P->price; P->price = Q->price; Q->price = TEMP.price; TEMP.pages = P->pages; P->pages = Q->pages; Q->pages = TEMP.pages; TEMP.isbn_no = P->isbn_no; P->isbn_no = Q->isbn_no;
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Q->isbn_no = TEMP.isbn_no; TEMP.isbn_no; //========================================================================
ge le> ldrs gS a fd INFO Part es a ftrus vf/kd Data Items gks axs x]s ges a mrus gh T;knk Exchanges djus iMsaxs xAs ysfdu fdu bl leL;k ls cpus dk ,d rjhdk gS vkS j og ;s gS fd ge INFO Part ds Data Items dks Exchange djus ds ctk; muds LINK Part ds LINK dks Exchange dj ns aA LINKS dks Exchange djds Sorting djus ds fy, ge fuEu Algorithm dk iz;ks ;ksx dj ldrs gS& a Bubble Sort Algorithm LINK PART P ART //======================================================================== Here LIST is a Linked List Data Type and P, Q, R, S and TEMP are Linked Lists. START is a LIST Type Global Linked List Variable.
6
7
SET S = NULL REPEAT Step 3 to 5 WHILE S <> START[LINK] SET R = P = START SET Q = P[LINK] REPEAT Step 6 and 7 WHILE P <> S IF P[INFO] > Q[INFO] IF P = START TEMP = Q[LINK] Q[LINK] = P P[LINK] = TEMP SET START = Q SET R = Q ELSE TEMP = Q[LINK] Q[LINK] = P P[LINK] = TEMP R[LINK] = Q R = Q [ End of Inner IF Structure ] ELSE SET R = P SET P = P[LINK] [End of Outer IF Structure ] SET Q = P[LINK]
8 9
IF Q = S SET S = P [ End of Inner WHILE Loop ] [ End of Outer WHILE Loop ] 10 EXIT //========================================================================
bl Algorithm ds vk/kkj ij ge fuEukuqlkj ,d Function Create dj ldrs gSa tks fd fdlh Linked dh Sorting ds fy, Use fd;k tk ldrk gS& Bubble Sort Function LINK PART //======================================================================== void LLBubbleSortLP() { struct LIST *P, *Q, *R, *S, *TEMP ;
http://www.bccfalna.com/
List
Data Structure and Algorithms with “C” in Hindi
S = NULL; while(S != START->LINK) { R = P = START; Q = P->LINK; while(P != S) { if( P->INFO > Q->INFO ) { if( P == START ) { TEMP = Q->LINK; Q->LINK = P; P->LINK = TEMP; START = Q; R = Q; } else { TEMP = Q->LINK; Q->LINK = P; P->LINK = TEMP; R->LINK = Q; R = Q; } } else { R = P; P = P->LINK; } Q = P->LINK; If( Q == S ) S = P; } } } //========================================================================
blh rjg ls ge Selection Sort dk Algorithm fy[k dj ml Algorithm ds vk/kkj ij ,d Function Create dj ldrs gSAa Algorithm o Function fuEukuqlkj gS a& Selection Sort Algorithm LINK PART //======================================================================== Here LIST is a Linked List Data Type and P, Q, R, S and TEMP are Linked Lists. START is a LIST Type Global Linked List Variable. 1 2 3
SET P = R = START REPEAT Step 3 and 4 WHILE P[LINK] <> NULL S = Q = P[LINK]
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
4 5
REPEAT Step 5 to 7 WHILE Q <> NULL IF P[INFO] = Q[INFO] IF P[LINK] = Q IF P = START P[LINK] = Q[LINK] Q[LINK] = P TEMP = P P = Q Q = TEMP START = P R = P S = Q Q = Q[LINK] ELSE P[LINK] = Q[LINK] Q[LINK] = P R[LINK] = Q TEMP = P P = Q Q = TEMP S = Q Q = Q[LINK] ELSE IF P = START TEMP = Q[LINK] Q[LINK] = P[LINK] P[LINK] = TEMP S[LINK] = P TEMP = P P = Q Q = TEMP S = Q Q = Q[LINK] START = P ELSE TEMP = Q[LINK] Q[LINK] = P[LINK] P[LINK] = TEMP R[LINK] = Q S[LINK] = P TEMP = P P = Q Q = TEMP S = Q Q = Q[LINK]
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
ELSE S = Q Q = Q[LINK] 6 R = P 7 P = P[LINK] 8 EXIT //========================================================================
Selection Sort Function LINK PART //======================================================================== void LLSelectionSortLP() LLSelectionSortLP() { struct LIST *P, *Q, *S, *R, TEMP; P = R = START; while(P->LINK != NULL) { S = Q = P->LINK; while(Q!=NULL) { if(P->INFO > Q->INFO) { if(P->LINK == Q) { if(P==START) { P->LINK = Q->LINK; Q->LINK = P; TEMP = P; P = Q; Q = TEMP; START = P; R = P; S = Q; Q = Q->LINK; } else { P->LINK = Q->LINK; Q->LINK = P; R->LINK = Q; TEMP = P; P = Q; Q = TEMP; S = Q Q = Q->LINK; } } else { if(P==START)
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
{ TEMP = Q->LINK; Q->LINK = P->LINK; P->LINK = TEMP; S->LINK = P; TEMP = P; P = Q; Q = TEMP; S = Q; Q = Q->LINK; START = P; } else { TEMP = Q->LINK; Q->LINK = P->LINK; P->LINK = TEMP; R->LINK = Q; S->LINK = P; TEMP = P; P = Q; Q = TEMP; S = Q; Q = Q->LINK; } } } else { S = Q; Q = Q->LINK; } } R = P; P = P->LINK; } } //========================================================================
Inserting into a Sorted Linked List ekuyks fd ITEM dks fdlh Sorted Linked List esa Insert djuk gSA bl fLFkfr esa o B ds chp Insert djuk gksxkA xkA ;kuh A[INFO] < ITEM
AND
ITEM
dks nks
Nodes A
B[INFO] >= ITEM
bl Operation ds fy, ges a lcls igys ml LOCATION ij igqpuk apuk gks rk gS tgka ds ITEM dk eku A[INFO[] ds eku ls rks vf/kd gS ysfdu B[INFO] ds eku ls de ;k cjkcj gSA ;s dke djus ds fy, ges a ,d Pointer Variable PTR ysuk gksrk gS vkSj ITEM ds eku dks PTR[INFO] }kjk LIST ds gj Node ds
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
ls Compare djuk gks rk gSA Linked List dh Traversing ds le; Hkh dqy fdrus Nodes Travers gks pqds gS a bldh tkudkjh Hkh j[kuh gks rh gSA ;s tkudkjh ge ,d Pointer Variable SAVE }kjk j[krs gSa fd fdrus Data Elements ;k NODES Travers fd, tk pq ds ds gS aA SAVE p PTR dks Loop ds gj Iteration es a Assignment }kjk Update fd;k tkrk gSA ;kuh INFO
SAVE = PTR PTR = PTR[LINK]
SAVE
PTR
;s Traversing rc rd pyrh gS tc rd PTR[INFO] > ITEM gksrk gSA tSls gh ITEM <= PTR[INFO] gks tkrk gS] Traversing :d tkrh gSA Traversing :dus ds ckn PTR Node B dks Point djrk gS vkS j Node A esa LOCATION Number gksrk gSA ;fn LIST Empty gksrk gS ;k ITEM < START[INFO] gks rk gS rc LOCATION = NULL gks rk gSA bldk Algorithm ge fuEukuqlkj fy[k ldrs gS& a Algorithm //========================================================================
FINDA(INFO, LINK, START, ITEM, LOCATION) This Procedure finds the location LOCATION of the last node in a sorted LIST such that LOCATION[INFO] < ITEM or Sets LOCATION = NULL
1 2 3 4 5 6 7
IF START = NULL then [ LIST is Empty ] SET LOCATION = NULL and RETURN IF ITEM < START[INFO] then SET LOCATION = NULL and RETURN SET SAVE = START and PTR = START[LINK] [ Initialize Pointers ] REPEAT Step 7 and 8 WHILE PTR <> NULL IF ITEM < PTR[INFO] then SET LOCATION = SAVE and RETURN [ End of IF Structure ] 8 SET SAVE = PTR and PTR = PTR[LINK] [ Update Pointers ] [ End of Step 6 Loop ] 9 SET LOCATION = SAVE 10 EXIT //========================================================================
Deleting from a Linked List fdlh Linked List esa fdlh Node ds Deletion esa j[kuk gks rk gSA
Steps
dks
Perform
djus ls igys ges a dqN ckrks a dks /;ku
;fn Linked List Empty gks rks fdlh Node dk Deletion lEHko ugha gks rk gSA bl fLFkfr es a es a Underflow Message Print gksuk pkfg,A
Output
ftl Recoded ds Node dks Delete djuk gks rk gS] igys ml Node rd igq a pus pus ds fy, Traversing djuh iMrh gSA blfy, fdlh Linked List esa rc rd ml Record dks Find djuk gks rk gS tc
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
rc fd Delete gksusus okyk Record izkIr uk gks tk,A bl dke ds fy, ges a gj fiNys Address dks Preserve djds j[kuk gks rk gSA
Node
ds
;fn Traversing ds nkSjku ge Linked List ds vUr rd igq a p tk,a vkSj tks Record Delete djuk gS] og izkIr uk gks] rks “Item not found” dk Message Output es a Display gksuk pkfg,A Item ds List esa izkIr gks tkus ds ckn mls Delete djuk gksrk gS vkS j Delete gksus okys Item ds Space dks Free djuk gks rk gS rkfd og Space AVAILABLESPACE AVAILABLESPACE Linked List es a Add gks ldsA ;fn ge Space dks Free ugha djrs gS a] rks gekjh Linked List }kjk yh tkus okyh Space AVAILABLESPACE AVAILABLESPACE Linked List esa miyC/k ugha gksrh gSA ;kuh gekjh Node }kjk tks Space Reserve fd;k x;k Fkk oks Space rc Hkh Reserve jgrk gS tcfd ml Space dks Reserve djus okys Node dks Delete fd;k tk pqdk gksrk gSA
ftl rjg ls ge fdlh Linked List es a rhu rjhds ls Data Elements ds Nodes dks Insert dj ldrs gS]a mlh rjg ls ge fdlh Linked List ls fdlh Node dks rhu rjg ls Delete Hkh dj ldrs gSAa Deletion of First Node ekuyks fd gekjs ikl fuEukuq lkj dksbZ Linked List LIST gS ftles a ikap Nodes Node1, Node2, Node3, Node4 o Node5 gSa vkSj ges a bl Linked List ds igys Node Node1 dks Delete djuk gSA
ge tkurs gSa fd fdlh Hkh Linked List es a START Pointer ges a”kk Linked List dh “kq:vkr ds igys Node dks Point djrk gSA ;kuh START es a Linked List ds igys Node dk Address gks rk gSA ;fn ge bl Fke Node dks Delete djuk pkgrs gS a rks ges a ds oy bruk djuk gS fd ge START es a Linked List es a ls izFke nw ljs Node dk Address Insert dj ns aA ;kuh ;fn START Pointer esa Node1 ds Address ds LFkku ij Node2 dk Address Store gks tk,] rks izFke Node bl Linked List LIST ls Free gks tk,xkA vc bl Free Node Node1 }kjk Reserved Memory dks AVAILABLESPACE AVAILABLESPACE Linked List es a Add djuk gksxkA xkA ;s dke gekjk Operating System dj ys rk gSA
us ds ckn START Pointer Node2 ds Address 200 START Pointer es a Node2 dk Addres s nsus Point djsxkA ;kuh vc Node1 Free gks pqdk d k gSA blfy, blds Space dks vc Free fd;k tk ldrk Node1 Delete djus ds ckn vc gekjh LIST fuEukuq lkj gksrh gS&
http://www.bccfalna.com/
dks gSA
Data Structure and Algorithms with “C” in Hindi
vc ,d vkSj fLFkfr gekjs lkeus vkrh gS fd ;fn Linked List es a ,d Hkh Node uk gks rks D;k gksxkA ;fn LIST es a ,d Hkh Node uk gks rks ge dg ldrs gSa fd LIST Empty gSA bl fLFkfr esa ges a Output es a ,d “Underflow” Message nsuk uk gksxkA bl iw js Discussion ds vk/kku ij fdlh Linked List LIST ds izFke Node dks Delete djus ds fy, ge fuEukuqlkj Algorithm Create dj ldrs gSa& First Node Deletion Algorithm //========================================================================
DELETE_FIRST_NODE(LIST, DELETE_FIRST_N ODE(LIST, INFO, LINK, START, AVAILABLE AVAILABLESPACE) SPACE) 1
IF START = NULL then
2 3
PTR = START AVAILABLESPAC E = START
PRINT “Underflow, LIST is Empty” and EXIT
[Give First Node to AVAILABLESPA CE Linked List]
4 START = PTR[LINK] [Give Address of Second Node of the LIST to START] 5 EXIT //========================================================================
bl Algorithm ds vk/kkj ij ge fuEukuq lkj ,d Function Node dks Delete dj ldrs gS a&
Create
djds fdlh Linked
List
ds izFke
First node Deletion Function //======================================================================== void DeleteFirstNode(struct LIST **START) { struct LIST *PTR; if(*START == NULL) { printf("\nUnderflow, LIST is Empty"); return ; } PTR = *START; *START = PTR->LINK; free(PTR); } //========================================================================
Deletion of Last Node tc ges a fdlh Linked List ds vfUre Node dks Delete djuk gksrk gS rc lcls igys ges a Traversing djds Linked List ds dqy Nodes dh la[;k [;k n Kkr djuh iMrh gS rkfd gesa irk py lds ds Linked List
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
esa dqy Nodes dh la[;k [;k fdruh gSA tc ges a Traversing djds dqy Nodes dh la[;k [;k n irk py tkrh gS mlds ckn ges a okil ls ,d Loop dks n-1 ckj pykuk gks rk gS rkfd ge vfUre Node ls fiNyh okyh Node rd igqp a ldsAa fQj ges a bl Node ds LINK Part esa NULL Assign djuk gks rk gSA tSls gh ge Second Last Node ds LINK Part es a NULL Assign djrs gS]a Linked List dk vfUre Node Free gks tkrk gSA vc bl Free Node ds Space dks AVAILABLESPACE AVAILABLESPACE Linked List dks iznku djuk gks rk gSA bl iw jh izfØ;k dk Algorithm ge fuEukuq lkj fy[k ldrs gSa& Last Node Deletion Algorithm //========================================================================
DELETE_LAST_NODE(LIST, DELETE_LAST_ NODE(LIST, INFO, LINK, START, AVAILABLE AVAILABLESPACE, SPACE, COUNTNODE)
SET PREPTR = START SET PTR = START[LINK] SET COUNTNODE = 0 IF PREPTR = NULL then
[ Initialize Address of START to PREPTR ] [ Set Counter to 0 ]
PRINT “Underflow, LIST is Empty” and RETURN
REPEAT WHILE PREPTR <> NULL [Traverse LIST until PREPTR <> NULL] PTR = PTR[LINK] PREPTR = PREPTR[LINK] COUNTNODE = COUNTNODE + 1 SET PREPTR = START [ Initialize Address of START to PTR Again ] SET PTR = START[LINK] REPEAT FOR I = COUNTNODE To 1 STEP SIZE I = I - 1 PREPTR = PREPTR[LINK] PTR = PTR[LINK] IF COUNTNODE = 1 PREPTR[LINK] = PTR[LINK] AVAILABLESPACE[LINK] = PTR[LINK] EXIT
//========================================================================
bl Algorithm ds vk/kkj ij ge fuEukuqlkj ,d Function Node dks Delete dj ldrs gS aA
Create
djds fdlh Linked List ds vfUre
Last Node Deletion Function //======================================================================== void DeleteLastNode(struct LIST **START) { int COUNTNODE = 0; struct LIST *PTR, *PREPTR; PREPTR = *START; PTR = PREPTR->LINK;
if(PREPTR==NULL) { printf("\nUnderflow, LIST is Empty"); return; } while(PTR) { PTR = PTR->LINK; PREPTR = PREPTR->LINK; COUNTNODE = COUNTNODE + 1;
}
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
printf("\nTotal Nodes are %d ", COUNTNODE); PREPTR = *START; PTR = PREPTR->LINK; while(COUNTNODE != 1) { PTR = PTR->LINK; PREPTR = PREPTR->LINK; COUNTNODE = COUNTNODE - 1 ; } if(COUNTNODE == 1) { PREPTR->LINK = PTR->LINK; free(PTR); } PREPTR = *START; PTR = PREPTR->LINK; printf("\nAfter Deleting Node, LIST is as Follows \n"); while(PTR) { printf("\n0x%x", PTR); printf("%d", PTR->INFO); PTR = PTR->LINK; } }
//========================================================================
Deletion Any NODE from a Linked List vHkh rd geus nks rjhdksa ls fdlh Linked List ds izFke o vfUre Node dks Delete djus ds rjhds dks le>k o mudks Use djus ds fy, muds Algorithm ds vk/kkj ij Function Develop fd,A vc ge rhljk rjhdk le>s axs xs ftles a fdlh Linked List ds fdlh e/; ds Node dks Delete djuk gks rk gSA okLro esa ge dHkh Hkh ;s ugha tku ldrs fd ge ftl Data Element ds Node dks Delete djuk pkgrs gSa og Linked List ds izFke Node ij gh gS ;k vfUre Node ijA ;kuh vHkh rd geus tks Hkh dqN fdlh Node ds Deletion ds ckjs es a lh[kk] og dsoy Deleting izfØ;k dks le>us ds fy, FkkA tc okLro es a gesa fdlh Application Software es a ls fdlh Data Element ds Node dks Delete djuk gks rk gS] rc ge nks rjhdksa ls fdlh Node dks Search djds Delete djrs gSaA igys rjhds esa ge ,d Key dk iz;ksx djds ml Record dks Search djrs gSa ftls ge Delete djuk pkgrs gSa vkSj nw ljs rjhds es a ge ,d Node Number Key ds :i es a Use djrs gSa vkSj ml Number okys Node dks Delete dj ns rs gSa A ;kuh ;fn ges a fdlh LIST ds pkSFks Node dks Delete djuk gS] rks ge 4 Input djrs gSAa fdlh Hkh Linked List ls fdlh Node dks Delete djus dk ;gh rjhdk iz k;ksfxr rkSj ij viuk;k tkrk gSA
vHkh rd geus ftu nks rjhdks a ls gS] mu nksuks uksa rjhdksa dk iz;ksx vc esa ls tks Hkh Node Delete gksuk bl izfØ;k dks Ø;k dks le>us dh dksf”k”k f”k”k
fdlh Linked List ds fdlh Node dks Delete djus dk rjhdk viuk;k bl rjg ls fd;k tk,xk fd fdlh Linked List ds izFke] e/; ;k vfUre pkfg, og Requirement ds vuqlkj Node Delete gks tkrk gSA pfy,] djrs gSAa
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
ekuyks fd LIST ,d Linked List gS] ftles a nks Nodes A o B ds chp ,d Node N gS vkSj bl Node N dks Linked List es a ls Delete djuk gSA bl Node N dks Delete djus ds fy, ge fuEu fp= es a fn[kk, x, Process dks Use dj ldrs gS& a
tSls gh ge fdlh Node dks Linked List es a ls Delete djrs gSa] ;s t:jh gks rk gS fd og Space fdlh AVAILABLESPACE vU; Program ds fy, Usable gks tk, ;kuh og Space Free gks tk, vkSj AVAILABLESPACE Linked List es a tqM tk,A ,lk djus ds fy, ges a Programming Language “C” esa free() Function dk iz;ksx djuk iMrk gSA fdlh Node ds Deletion ds le; Hkh nks fLFkfr;ka gks rh gS aA igyh ;s fd tc fdlh Linked List es a Delete fd;k tkus okyk Node N gh ml Linked List dk START Node gks vkSj nw ljh fLFkfr ;s fd Delete fd;k tkus okyk Node N fdlh Linked List dk vfUre Node gks ftles a NULL gksA ekuyks fd LIST ,d Linked List gS vkSj ges a fdlh Node N dh Location LOC nh xbZ gSA bl Location ds Node dks LIST ls Delete djuk gSA ;fn ge ;s ekus fd ges a ftl Node dks Delete djuk gS ml Node N ls igys ds Node dh Location LOCP gS ;k ;fn N fdlh LIST dk igyk Node gS rks LOCP = NULL gksrk gSA bl fLFkfr es a fdlh Node N dks Delete djus ds fy, ges a fuEu Algorithm dk iz;ksx djuk gksxk& Algorithm //======================================================================== DELETE(INFO, LINK, START, AVAILABLESPACE, LOC, LOCP) This Algorithm deletes a NODE N with location LOC. LOCP is the location of the node which precedes N or, when N is the first node, LOCP = NULL.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
1 2 3
SET LOCP = START SET LOC = LOCP[LINK] IF LOCP = NULL then SET START = START[LINK] START[LINK] ELSE SET LOCP[LINK] = LOC[LINK] 4
[ Delete First Node ] [ Delete Node N ] [ End of IF Structure ]
SET LOC[LINK] = AVAILABLESPACE [ Return deleted node to the AVAILABLE SPACE Linked List ]
5 AVAILABLESPACE = LOC 6 EXIT //========================================================================
Deleting the Node with a Given ITEM of Information ekuyks fd LIST ,d Linked List gS vkSj ges a ITEM fn;k x;k gSA ges a ml Node N dks Delete djuk gS ftles a ITEM gSA ;fn ITEM dksbZbZ Primary Key gS rks ,d LIST esa ds oy ,d gh ,lk ITEM gks ldrk gS ftls Delete djuk gSA blls igys fd ge Information ITEM okys Node N dks Delete djs a] ges a Node N ls fiNys ITEM dh LOCATION dk irk yxkuk gksxkA blds fy, gesa ,d Procedure Use djuk gksxk xk tks fd Node N dh LOCATION LOC dk irk yxk,xk vkSj LOC ls igys okys Node LOCP dk irk yxk,xkA ;fn N fdlh Linked List dk igyk ITEM gks rks gesa LOCP = NULL djuk gks rk gS vkSj ;fn LIST esa ITEM uk feys rks ges a LOC = NULL djuk gksrk gSA
,d Pointer PTR dk iz;ksx djrs gq, ITEM dks PTR[INFO] ls Compare djrs gq, Linked List dks Traverse djrs gS aAa tc Traversing dh tk jgh gks rc Compare gksus us okys Node ds igys ds Node dk SAVE uke ds ,d Variable esa Track j[kk tkuk pkfg,A SAVE o PTR dks fuEu Assignment }kjk Update djuk pkfg,& SAVE = PTR PTR = PTR[LINK]
Traversing rc rd pyuh pkfg, tc rd fd PTR[INFO] <> ITEM uk gks tk,A nw ljs “kCnksa es a dgs a rks Traversing rc :duh pkfg, tc ITEM = PTR[INFO] gks tk,A bl fLFkfr esa PTR esa Node dh Location LOC gks rk gS vkSj SAVE esa Node N ds igys ds Node dk Location LOCP gks rk gSA tc Linked List es a ds oy ,d gh Node gks rk gS ;k tc N igyk Node gksrk gS rc SAVE Variable dh t:jr ugha gksrh gSA bl Algorithm dks ge fuEukuq lkj ns[k [k ldrs gSa& Algorithm //======================================================================== FINDB(INFO, LINK, START, ITEM, LOC, LOCP) This procedure finds the location LOC of the Node N which contains ITEM and the location LOCP of the node preceding N. If ITEM does not appear in the list, then the procedure sets LOC = NULL; and if ITEM appears in the first node, then it sets LOCP = NULL. 1 2 3
IF START = NULL then SET LOC = NULL and LOCP = NULL and RETURN IF START[INFO] = ITEM then SET LOC = START and LOCP = NULL and RETURN SET SAVE = START and PTR = START[LINK]
http://www.bccfalna.com/
[ [ [ [ [
If LIST is Empty ] End of IF Structure ] ITEM is in first node ] End of IF Structure ] Initialize Pointers ]
Data Structure and Algorithms with “C” in Hindi
4 5
REPEAT Step 5 and 6 WHILE PTR <> NULL IF PTR[INFO] = ITEM then SET LOC = PTR and LOCP = SA VE and RETURN [ End of IF S tructure ] 6 SET SAVE = PTR and PTR = PTR[LINK] [ Update Pointers ] [ End of Step 4 Loop ] 7 SET LOC = NULL [ Search Unsuccessful ] 8 EXIT //========================================================================
mijksDr Dr Algorithm ml Node dks Find djrk gS ftles a ITEM miyC/k gSA bl Algorithm dk iz;ksx djds ge fuEukuqlkj ,d Algorithm fy[k ldrs gSa] ftlls fdlh LIST ds ml Node N dks Delete fd;k tk ldrk gS ftlesa Search fd;k tkus okyk ITEM gS& //======================================================================== DELETE(INFO, LINK, START, AVAILABLESPACE, ITEM) This Algorithm deletes from a Linked List the node N which contains the given ITEM of information. 1
[Use Previous Procedure to find the location of N and its preceding node] CALL FINDB(INFO, LINK, START, ITEM, LOC, LOCP) 2 IF LOC = NULL then PRINT ‘ITEM is not in the LIST’
EXIT IF LOCP = NULL then SET START = START[LINK] [ Delete First Node ] ELSE SET LOCP[LINK] = LOC[LINK] [ End of IF Structure ] 4 SET LOC[LINK] = AVAILABLESPACE AVAILABLESPA CE = LOC [ Free DELETED Node’s Space ] 5 EXIT //======================================================================== 3
bl Algorithm ds vk/kkj ij ge fuEukuq lkj ,d Program Create dj ldrs gS a tks fdlh Linked List ds ml Node dks Delete fd;k x;k gS ftles a ITEM izkIr gks rk gSA Program of Deletion of a Given Node //======================================================================== #include #include #include void main(void) { int i, ITEM; struct LIST { int INFO; struct LIST *LINK; }START, *NODE, *LOC, *LOCP; START.LINK = NULL; NODE = &START;
// Empty List // Points to the Start of Linked List
for(i=1; i<10; i++)
// Linked List Creation
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
{ NODE->LINK = (struct LIST *)malloc(sizeof(struct LIST)); NODE->INFO = i; NODE=NODE->LINK; NODE->LINK = NULL; } //Remove the Number fflush(stdin); printf("\nEnter Number You want to Delete [ 1 to 9 ] "); scanf("%d", &ITEM); printf("\n\nLIST Before Deletion of VALUE = %d \n\n", ITEM); NODE = &START;
// Points to the Start of Linked List
while(NODE != NULL) { printf("%d\t", NODE->INFO); NODE = NODE->LINK; } LOC = START.LINK; LOCP = &START; while(LOC) { if(LOC->INFO == ITEM) { LOCP->LINK = LOC->LINK; free(LOC); break; } else { LOC = LOC->LINK; LOCP = LOCP->LINK; } } //Display the LIST LOC = &START; printf("\n\nLIST After Deletion VALUE = %d \n\n", ITEM); while(LOC != NULL) { printf("%d\t", printf("%d\t", LOC->INFO); LOC = LOC->LINK; } getch(); } //========================================================================
Output //======================================================================== Enter Number You want to Delete [ 1 to 9 ] 5
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
LIST Before Deletion of VALUE = 5 1
2
3
4
5
6
7
8
9
4253080
LIST After Deletion VALUE = 5 1 2 3 4 6 7 8 9 4253080 //========================================================================
Header Linked List Header Linked List es a ,d Special Node gks rk gS] tks fd fdlh Linked List dh “kq:vkr :vkr dk igyk ”kk START Point djrk gSA fdlh Header Linked List es a Linked List Node gks rk gSA bl Node dks ges a”kk ds bl izFke Node dks Header Node dgrs gS aA bl iz dkj dkj dh Linked List rc cgqr mi;ksxh xh gks rh gS tc fdlh Information dks izkIr djus ds fy, iw jh Linked List dks Traverse djuk iMrk gSA tSls ;fn gesa fdlh Linked List ds dqy y Nodes dh la[;k [;k Kkr djuh gks] rks ges a gj ckj iw jh Linked List dh Traversing djds dqy Nodes dh la[;k [;k Kkr djuh iMrh gSA ysfdu fdu ;fn fdlh Linked List dh Current Nodes dh dqy la[;k [;k dks fdlh Additional Header Node }kjk Maintain fd;k tk,] rks ge bl [;k Kkr dj Header Node dk iz;ksx djds fdlh Hkh le; fdlh Linked List ds dqy Nodes dh la[;k ldrs gS a vkS j blds fy, ges a iw jh Linked List dh Traversing djus dh Hkh t:jr ugha gks rh gSA bl fLFkfr esa ge Header Linked List dk iz;ks ;ksx dj ldrs gSa A bl Header Linked List ds nks :i gks rs gSa ftudk lcls vf/kd iz;ksx gksrk gS&
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
defined.” What is “Error! “Error! Bookmark not defined.” vkidks bl iqLrd ds “Index of Contents” dh List esa “Error! Bookmark not defined.” Message fn[kkbZ ns jgk gksxkA ;s os Contents gS a] tks vkidks rc fn[kkbZ ns ax]s tc vki bl iqLrd dks PDF Format EBook ds :i esa Purchase djsaxs xAs
Did you liked this EBook? D;k vkidks ;s Sample Chapters ilUn vk,\ ;fn vkidks yxrk gS fd ;s iq Lrd vkids fy, mi;ksxh xh gS] rks vki bl iqLrd dks PDF Format EBook ds :i es a [kjhn ldrs gSaA iqLrd [kjhnus ls lacacfa /kr Detailed tkudkjh vki http://www.bccfalna.com/how-to-pay/ Page ls iz kIr dj ldrs gSaA bl iq Lrd dh dher dkQh de gS vkSj ;fn vki nks ls T;knk iqLrdsa [kjhnrs gS]a rks vkidks Extra Discount izkIr gks rk gSA Discount dh tkudkjh Hkh vki http://www.bccfalna.com/how-to-pay/ Page ij izkIr dj ldrs gSaA ;fn vki bl iqLrd dks PDF Format EBook ds :i es a [kjhnrs gS a] rks bl iqLrd dk gj Updated Version vkidks Lifetime Free feyrk gSA ;kuh iqLrd ds vxys Version ds fy, vkidks fdlh izdkj dkj dk dksbZbZ Payment ugha djuk iMrkA pw afd f d ;s iqLrd fofHkUu Universities ds Syllabus dks /;ku esa j[krs gq, fy[kh xbZ gS] blfy, ;s iqLrd vkids fy, ml fLFkfr esa Hkh dkQh mi;ksxh xh lkfcr gks rh gS] tcfd vki dksbZbZ Degree Level Course tSls fd BCA, PGDCA, MCA vkfn dj jgs gks rs gS aA bl iqLrd ds Pages dks vki viuh bPNkuqlkj Print djds vius Syllabus ds vuqlkj Lo;a ds Notes cuk ldrs gS a] tks fd vkids Exam esa bl Subject ds Marks Increase djus esa vkidh enn djrs gSAa pw afd f d ;s iq Lrd ,d PDF EBook gS] blfy, vki fdlh Hkh PDF Reader Supported Mobile, Tablet, Palmtop, Laptop ;k Computer ij bl iqLrd dks i< ldrs gS a vkSj bl iqLrd esa fn, x, fofHkUu Example Programs dks fcuk Type fd, gq, Copy-Paste djds vius Computer ij Compile o Run djds gj Program dk Output ns[k [k ldrs gS a] ftlls vkids Programming lh[kus dh Speed dkQh rst t gks tkrh gS] D;ks afd vkidks gj Program dks Manually Type djus dh t:jr ugha iMrhA tc vki ;s iq Lrd [kjhnrs [kjh nrs gSa] rks vki bl iqLrd ds lHkh Contents dks fcuk fdlh ijs”kkuh ”kkuh ds i< ldrs gS aA bl iq Lrd ds lHkh Contents dk Index fuEukuqlkj gS% Contents ............... Contents ................................ .................................. ................................. ................................. .................................. ................................. ................................. .................4 Data Structure Fundamentals and Arrays .................................................................................. 8 Introduction of Data - Field, Record and File........................................................................... 8 Data Stru Structure ctures s ............... ............................... .................................. .................................. ................................. ................................. ................................. ................... 10 Linear Data Structure ........................................................................................................ 10 Non-Linear Data Structure ................................................................................................ 10 Algorithm : Time – Time – Space Tradeoff and Complexity .............................................................. 11 Algorithms .......... ................... ................... ................... .................. .................. ................... ................... ................... ................... .................. ................... ................... ........... .. 13 Analysis of of Algorithm ...................... ............. ................... ................... ................... ................... .................. ................... ................... .................. ................ ....... 14 Rate of Grow Growth th......................................... .......................................................... ................................. ................................. .................................. ....................... ...... 14 Time Anal Analysis ysis ................. .................................. ................................. ................................. .................................. .................................. ............................... ..............16
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Complexity ( Big O Notation ) ............................................................................................ 16 Properties of “O” Notation ................ ................................ ................................. .................................. ................................. ............................... ............... 17 CPU Time............................................. .............................................................. ................................. ................................. ................................. ....................... ....... 18 Input / Outpu Outputt ................ .................................. .................................. ................................. ................................. .................................. ............................. ........... 19 Analyzing Algorithms Algorithms ......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... .............. ..... 21 Inserting and Deleting ........................................................................................................... 26 Algorithm of Inserting Inserting .......... ................... ................... ................... .................. ................... ................... ................... ................... .................. .................. ........... 27 Sorting Sorti ng ............... ................................ .................................. ................................. ................................. .................................. ................................. ............................... ............... 29 Bubble Bubb le Sort ............... ................................ .................................. .................................. ................................. ................................. ................................. .................... .... 29 Selection Sele ction Sort ................. .................................. ................................. ................................. .................................. .................................. ............................... .............. 30 Insertion Inser tion Sort ............... ............................... .................................. .................................. ................................. ................................. ................................. ................... 31 Searchin Sear ching g ................ ................................. ................................. ................................. .................................. ................................. ................................. .......................... ......... 34 Internal Inter nal Sear Search ch ............... ............................... ................................. .................................. .................................. .................................. ............................... .............. 34 External Exte rnal Searc Search h ................ .................................. .................................. ................................. ................................. .................................. ............................. ........... 34 Linear Searching......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 34 Binary Searching......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 37 String Operations and Data Structure ................................................................................... 41 Pattern Matching Algorithms ................................................................................................. 44 Algebra of Matrix Matrix ......... ................... ................... .................. .................. ................... ................... ................... ................... .................. .................. ................... ............ .. 46 Addition of of Matrixes ....................... .............. .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 46 Subtraction of Matrixes ..................................................................................................... 47 Multiplication of Matrix....................................................................................................... 48 Transpose of Matrix .......................................................................................................... 50 Orthogonal Matrix ............................................................................................................. 50 Symmetric Symm etric Matri Matrix x .............. ............................... .................................. .................................. ................................. .................................. ............................. ........... 51 Sparse Spar se Matri Matrix x ............... ............................... .................................. .................................. ................................. ................................. ................................. ................... 51 Linked Linke d Lis Lists ts ................. .................................. ................................. ................................. .................................. ................................. ................................. .......................... ......... 52 Linked Link ed Lis Listt ............... ............................... ................................. .................................. .................................. ................................. ................................. .......................... ......... 54 Creating Linked List .............................................................................................................. 60 Memory Allocation ................................................................................................................ 61 Garbage Collection......... ................... ................... .................. ................... ................... .................. ................... ................... ................... ................... ................. ........ 63 Overflow and Underflow ....................................................................................................... 63 INSERTING New NODE at the End of the LIST ................................................................... 64 INSERTING New NODE at the BEGINNING of the LIST .......... ................... ................... ................... ................... ................ ...... 71 INSERTING New NODE at any MIDDLE Position of the LIST .......... ................... ................... ................... ................. ........ 74 Searching in a Linked List..................................................................................................... 78 LIST is Unso Unsorted rted ............... ................................. .................................. ................................. ................................. .................................. ............................. ...........78 LIST is Sorte Sorted d ................. .................................. ................................. ................................. .................................. .................................. ............................... ..............80 Sorting Sorti ng ............... ................................ .................................. ................................. ................................. .................................. ................................. ............................... ............... 81 Inserting into a Sorted Sorted Linked List......... .................. ................... ................... .................. ................... ................... ................... ................... .............. ..... 89 Deleting from a Linked List ................................................................................................... 90 Deletion of First Node ....................................................................................................... 91 Deletion of Last Node ....................................................................................................... 92 Deletion Any NODE from a Linked List ............................................................................. 94 Deleting the Node with a Given ITEM of Information .......... ................... ................... ................... .................. ................... .......... 96 Header Linked List................................................................................................................ 99 Grounded Header ....................................................................Error! Bookmark not defined. Circular Header .......................................................................Error! Bookmark not defined. Creating a Circular Linked List ............................................. Error! Bookmark not defined. Traversing a Circular Linked List .......................................... Error! Bookmark not defined. Two – Two – Way Lists OR Doubly Linked List List .......... ................... ................... ............... .....Error! Bookmark not defined.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
CREATION of Doubly Linked List ........................................ Error! Bookmark not defined. INSERTING NODE After Specific Node Number ........ ................. ......... Error! Bookmark not defined. DELETION In Doubly Linked List ......................................... Error! Bookmark not defined. DELETION of Specified NODE of the Doubly Linked List ..... Error! Bookmark not defined. Circular Doubly Linked List ......................................................Error! Bookmark not defined. Stacks and Queues .....................................................................Error! Bookmark not defined. STACK STAC K ................. .................................. .................................. ................................. ................................. .................Error! Error! Bookmark not defined. PUSH PUS H................ ................................. .................................. ................................. ................................. .................Error! Error! Bookmark not defined. Error! Bookmark not defined. POP ............... ................................ .................................. ................................. ................................. .................... ...Error! Postponed Decisions ...........................................................Error! Bookmark not defined. ARRAY Representation Representation of Stack Stack ........ .................. ................... ................... ............... .....Error! Bookmark not defined. PUSH Algorithm For Array Stack .........................................Error! Bookmark not defined. POP Algorithm For Array Stack......... .................. ................... ................... ................ .......Error! Bookmark not defined. Linked List Representation Representation of STACK .......... ................... ................... ............... .....Error! Bookmark not defined. Arithmetic Expressions Expressions and POLISH POLISH Notations .......... ................... ............. .... Error! Bookmark not defined. Evaluation of a Postfix Expression ....................................... Error! Bookmark not defined. Transforming Transformin g Infix Expression into Postfix Expression ......... Error! Bookmark not defined. Error! Bookmark not defined. Quick Quic k Sort ............... ............................... ................................. .................................. ............................... ..............Error! Complexity Complexi ty fo the Quick Q uick Sort Algorithm ......... ................... ................... ............. ....Error! Bookmark not defined. Queues................. Queues .................................. .................................. ................................. ................................. .................Error! Error! Bookmark not defined. Representation of Queues ...................................................Error! Bookmark not defined. PUSH Algorithm For Array Queue ....................................... Error! Bookmark not defined. POP Algorithm For Array Queue ..........................................Error! Bookmark not defined. Linked Representation of Queues ........................................ Error! Bookmark not defined. Circular QUEUE ......................................................................Error! Bookmark not defined. DEQUE DEQU E ................ ................................. .................................. ................................. ................................. .................Error! Error! Bookmark not defined. Priority Queue .........................................................................Error! Bookmark not defined. Trees ............... ............................... ................................. .................................. ................................. ......................... .........Error! Error! Bookmark not defined. Binary Bina ry Tree................ .................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. Terminology............................................................................. Error! Bookmark not defined. A Complete Binary Binary Tree ......... .................. ................... ................... .................. ................... ............ ..Error! Bookmark not defined. Extended Binary Tree or 2 – 2 – Tree................ ................................. ............................ ...........Error! Bookmark not defined. Representation of Binary Tree .................................................Error! Bookmark not defined. Sequential Representation ...................................................Error! Bookmark not defined. Linked List Representation ...................................................Error! Bookmark not defined. Traversing Binary Tree ............................................................Error! Bookmark not defined. Preorder Traversing .............................................................Error! Bookmark not defined. Inorder Traversing ................................................................Error! Bookmark not defined. Postorder Traversing ...........................................................Error! Bookmark not defined. CREATING Binary Tree ..........................................................Error! Bookmark not defined. INSERTING in a Binary Tree ...................................................Error! Bookmark not defined. Creating Binary Tree Array Representation Representation .......... ................... .................. ...........Error! Bookmark not defined. Binary Search Tree (BST) .......................................................Error! Bookmark not defined. SEARCHING SEARCHIN G and INSERTING I NSERTING in Binary Search Tree ......... Error! Bookmark not defined. Complexity of the Searching Algorithm ................................ Error! Bookmark not defined. DELETING from Binary Search Tree ................................... Error! Bookmark not defined. Complexity Complexi ty of Binary Search Tree .......... ................... .................. ................... ............ ..Error! Bookmark not defined. Balanced Binary Tree ..............................................................Error! Bookmark not defined. AVL Tree ( Height Height Balanced Tree ) ......... ................... ................... .................. ...........Error! Bookmark not defined. Tree Rotation .......................................................................Error! Bookmark not defined. Insertion a Node in AVL Tree ...............................................Error! Bookmark not defined.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
Deletion From an AVL Tree .................................................Error! Bookmark not defined. M – Way Searc Search h Tree................. .................................. .................................. ............................ ...........Error! Bookmark not defined. Searching in M – M – Way Tree............................ ............................................ ...................... ......Error! Bookmark not defined. Insertion in M – M – Way Tree ......................................... .................................................... ...........Error! Bookmark not defined. Deletion from M – M – Way Tree ............... ............................... ................................. .................Error! Bookmark not defined. B – Tree ............... ............................... .................................. .................................. ................................. .................Error! Error! Bookmark not defined. Graph............... ............................... ................................. .................................. ................................. ......................... .........Error! Error! Bookmark not defined. Basic Concepts and Definitions ...............................................Error! Bookmark not defined. Error! Bookmark not defined. Path................ .................................. .................................. ................................. ................................. ...................... ......Error! Sequential Representation ......................................................Error! Bookmark not defined. Adjacency Matrix Matrix ......... ................... ................... .................. .................. ................... ................... ............. ....Error! Bookmark not defined. Path Matr Matrix ix ................ .................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. Shortest Path Algorithm ...........................................................Error! Bookmark not defined. Warshall Algorithm ..................................................................Error! Bookmark not defined. Warshall’s Modified Algorithm ................ ................................ ................................. .................Error! Bookmark not defined. Error! Bookmark not defined. Dijkstra’s Algorithm............... Algorithm ................................. .................................. ................................. .................Error! Floyd’s Technique ................ .................................. .................................. ................................. .................Error! Error! Bookmark not defined. Linked List Representation Representation of Graph (Adjacency List) ............ . Error! Bookmark not defined. Operations on GRAPHS ..........................................................Error! Bookmark not defined. Inserting in a GRAPH ...........................................................Error! Bookmark not defined. Deleting From a GRAPH ......................................................Error! Bookmark not defined. Traversing A GRAPH ...........................................................Error! Bookmark not defined. Breadth First Search ................................................................Error! Bookmark not defined. Depth First Search...................................................................Error! Bookmark not defined. Partially Ordered Set Set (POSETS)......... ................... ................... .................. .................. .........Error! Bookmark not defined. Topological Sorting ..................................................................Error! Bookmark not defined. Minimum Spanning Tree (MST) ...............................................Error! Bookmark not defined. Kruskal’s Algorithm............... Algorithm ................................. .................................. ................................. .................Error! Error! Bookmark not defined. Searching and Sorting .................................................................Error! Bookmark not defined. Error! Bookmark not defined. Searchin Sear ching g ................ ................................. ................................. ................................. ............................... ..............Error! Data Modification .....................................................................Error! Bookmark not defined. Error! Bookmark not defined. Sorted Sorte d Array........................................ ........................................................ ................................. .................Error! Linked Link ed List........................................... ........................................................... ................................. .................Error! Error! Bookmark not defined. Binary Search Tree ..............................................................Error! Bookmark not defined. Linear and Binary Searching ...................................................Error! Bookmark not defined. Hash Table ................ .................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. Error! Bookmark not defined. Hashing Hash ing ............... ............................... ................................. .................................. ............................... ..............Error! Hash Function ......................................................................Error! Bookmark not defined. Collision Resolution .................................................................Error! Bookmark not defined. Open Addressing : Linear Probing(Key Comparisons) Comparisons) and Modifications ..... Error! Bookmark not defined. Clusteri Clu stering....... ng........................ .................................. ................................. ................................. .................... ...Error! Bookmark not defined. Quadratic Probing ................................................................Error! Bookmark not defined. Double Hashing ...................................................................Error! Bookmark not defined. Deletion Del etion ............... ............................... ................................. .................................. ............................... ..............Error! Error! Bookmark not defined. Error! Bookmark not defined. Rehashi Reh ashing ng.............. ............................... .................................. .................................. ............................ ...........Error! Bucket And Chaining ...........................................................Error! Bookmark not defined. Selecting Good Hash Function.......... ................... ................... ................... ................ .......Error! Bookmark not defined. File Struct Structure ure ................ .................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. File Syste System m ............... ................................. .................................. ................................. ............................ ...........Error! Error! Bookmark not defined. Basic Concepts of File and File System......... ................... ................... ................ .......Error! Bookmark not defined.
http://www.bccfalna.com/
Data Structure and Algorithms with “C” in Hindi
File Data Storage and Retrieval ........................................... Error! Bookmark not defined. File Naming and File Attribute Maintenance ......... .................. ................ ....... Error! Bookmark not defined. File System Application Program Interface (API) .......... .................. ........ Error! Bookmark not defined. Disk Space Allocation ..............................................................Error! Bookmark not defined. FAT File System (MS-DOS) ....................................................Error! Bookmark not defined. Directory System .....................................................................Error! Bookmark not defined. UNIX File System ....................................................................Error! Bookmark not defined. i-node File System (Flat File System)......... ................... ................... ................ .......Error! Bookmark not defined. Directory File System ...........................................................Error! Bookmark not defined. Primary Prim ary Key ................. .................................. .................................. ................................. ...................... ......Error! Error! Bookmark not defined. System Architecture .............................................................Error! Bookmark not defined. Primary and Secondary Structure ............................................Error! Bookmark not defined. Secondary Storage Devices ....................................................Error! Bookmark not defined. Hard Disk Drives ..................................................................Error! Bookmark not defined. Disk Capacity .......................................................................Error! Bookmark not defined. Error! Bookmark not defined. Disk Dis k Acce Access ss ................. .................................. .................................. ................................. ...................... ......Error! Last Thing by Author ...................................................................Error! Bookmark not defined.
http://www.bccfalna.com/