ડેટા સ્ટ્રક્ચર અને એપ્લિકેશન (1333203) - વિન્ટર 2023 સોલ્યુશન

ડેટા સ્ટ્રક્ચર અને એપ્લિકેશન (1333203) વિન્ટર 2023 પરીક્ષા માટે સોલ્યુશન ગાઈડ

પ્રશ્ન 1(અ) [3 ગુણ]

લીન્કડ લીસ્ટની વ્યાખ્યા આપો. વિવિધ પ્રકારના લિન્ક્ડ લીસ્ટ ની યાદી આપો.

જવાબ:

વ્યાખ્યાલિન્ક્ડ લિસ્ટના પ્રકાર
લિન્ક્ડ લિસ્ટ એ લીનિયર ડેટા સ્ટ્રક્ચર છે જેમાં એલિમેન્ટ્સ નોડ્સમાં સ્ટોર થાય છે, અને દરેક નોડ ક્રમમાં આગળના નોડને પોઇન્ટ કરે છે1. સિંગલી લિન્ક્ડ લિસ્ટ
2. ડબલી લિન્ક્ડ લિસ્ટ
3. સર્ક્યુલર લિન્ક્ડ લિસ્ટ
4. સર્ક્યુલર ડબલી લિન્ક્ડ લિસ્ટ

ડાયાગ્રામ:

goat

મેમરી ટ્રીક: "એક, બે, ગોળ, બે-ગોળ"

પ્રશ્ન 1(બ) [4 ગુણ]

પાયથનમાં લીનીયર અને નોન-લીનીયર ડેટા સ્ટર્ચર ઉદાહરણ સાથે સમજાવો.

જવાબ:

ડેટા સ્ટ્રક્ચરવર્ણનપાયથન ઉદાહરણો
લીનીયરએલિમેન્ટ્સ ક્રમિક રીતે ગોઠવાયેલા હોય છે જેમાં દરેક એલિમેન્ટને એકદમ એક અગાઉનું અને એક પછીનું એલિમેન્ટ હોય છે (પ્રથમ અને છેલ્લા સિવાય)Lists: [1, 2, 3]
Tuples: (1, 2, 3)
Strings: "abc"
Queue: queue.Queue()
નોન-લીનીયરએલિમેન્ટ્સ ક્રમિક રીતે ગોઠવાયેલા નથી; એક એલિમેન્ટ અનેક એલિમેન્ટ્સ સાથે જોડાઈ શકે છેDictionary: {"a": 1, "b": 2}
Set: {1, 2, 3}
Tree: કસ્ટમ ઇમ્પ્લીમેન્ટેશન
Graph: કસ્ટમ ઇમ્પ્લીમેન્ટેશન

ડાયાગ્રામ:

મેમરી ટ્રીક: "લીનીયર લાઈનમાં, નોન-લીનીયર ચારે બાજુ"

પ્રશ્ન 1(ક) [7 ગુણ]

પાયથનમાં ક્લાસ, એટ્રીબ્યુટ, ઓબ્જેક્ટ અને ક્લાસ મેથડ યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

ડાયાગ્રામ:

શબ્દવર્ણન
ક્લાસઓબ્જેક્ટ્સ બનાવવા માટેનો બ્લૂપ્રિન્ટ, જેમાં શેર્ડ એટ્રિબ્યુટ્સ અને મેથડ્સ હોય છે
એટ્રિબ્યુટ્સક્લાસની અંદર ડેટા સ્ટોર કરતા વેરિએબલ્સ
ઓબ્જેક્ટક્લાસનું ઇન્સ્ટન્સ, જેમાં ચોક્કસ એટ્રિબ્યુટ વેલ્યુ હોય છે
ક્લાસ મેથડક્લાસની અંદર ડિફાઇન થયેલા ફંક્શન્સ જે ક્લાસની સ્થિતિને એક્સેસ અને મોડિફાય કરી શકે છે

કોડ:

Python

મેમરી ટ્રીક: "ક્લાસ બનાવે, એટ્રિબ્યુટ સંગ્રહે, ઓબ્જેક્ટ વાપરે, મેથડ ક્રિયા કરે"

પ્રશ્ન 1(ક) OR [7 ગુણ]

ડેટા એન્કેપ્સુલેસન અને પોલી મોર્ફીસમની વ્યાખ્યા આપો. પોલી મોર્ફીસમ સમજાવવા માટેનો પાયથન કોડ વિકસાવો.

જવાબ:

કોન્સેપ્ટવ્યાખ્યા
ડેટા એન્કેપ્સુલેસનડેટા અને મેથડ્સને એક એકમ (ક્લાસ)માં બંધ કરવા અને કેટલાક કોમ્પોનન્ટ્સને સીધી એક્સેસથી પ્રતિબંધિત કરવા
પોલીમોર્ફિઝમવિવિધ ક્લાસને એક જ નામના મેથડનો પોતાનો અમલ પૂરો પાડવાની ક્ષમતા

ડાયાગ્રામ:

કોડ:

Python

મેમરી ટ્રીક: "એન્કેપ્સુલેશન છુપાવે છે, પોલીમોર્ફિઝમ બદલાય છે"

પ્રશ્ન 2(અ) [3 ગુણ]

સ્ટેક અને ક્યુ નો તફાવત આપો.

જવાબ:

ફીચરસ્ટેકક્યુ
સિદ્ધાંતLIFO (છેલ્લું આવે પહેલું જાય)FIFO (પહેલું આવે પહેલું જાય)
ઓપરેશનપુશ, પોપએનક્યુ, ડિક્યુ
એક્સેસએલિમેન્ટ્સ ફક્ત એક છેડેથી ઉમેરાય/દૂર થાય છે (ટોપ)એલિમેન્ટ્સ છેલ્લે ઉમેરાય છે અને આગળથી દૂર થાય છે

ડાયાગ્રામ:

goat

મેમરી ટ્રીક: "સ્ટેક ઉપરનું પહેલા, ક્યુ આગળનું પહેલા"

પ્રશ્ન 2(બ) [4 ગુણ]

પુશ અને પોપ ઓપરેશન માટેનો અલ્ગોરીધમ લખો.

જવાબ:

PUSH અલ્ગોરિધમ:

goat

POP અલ્ગોરિધમ:

goat

કોડ:

Python

મેમરી ટ્રીક: "ટોપ પર પુશ, ટોપથી પોપ"

પ્રશ્ન 2(ક) [7 ગુણ]

નીચે. આપેલ સમીકરણ ને ઇન્ફીક્સ માંથી પોસ્ટફિક્ષ માં બદલો. A * (B + C) - D / (E + F)

જવાબ:

ડાયાગ્રામ:

goat
સ્ટેપસિમ્બોલસ્ટેકઆઉટપુટ
1AA
2**A
3(* (A
4B* (A B
5+* ( +A B
6C* ( +A B C
7)*A B C +
8--A B C + *
9D-A B C + * D
10/- /A B C + * D
11(- / (A B C + * D
12E- / (A B C + * D E
13+- / ( +A B C + * D E
14F- / ( +A B C + * D E F
15)- /A B C + * D E F +
16endA B C + * D E F + / -

જવાબ: A B C + * D E F + / -

મેમરી ટ્રીક: "ઓપરેટર સ્ટેક પર, ઓપરન્ડ સીધા પ્રિન્ટ"

પ્રશ્ન 2(અ) OR [3 ગુણ]

સિમ્પલ ક્યુ અને સર્ક્યુલર ક્યુ નો તફાવત આપો.

જવાબ:

ફીચરસિમ્પલ ક્યુસર્ક્યુલર ક્યુ
સ્ટ્રક્ચરલીનિયર ડેટા સ્ટ્રક્ચરજોડાયેલા છેડાવાળો લીનિયર ડેટા સ્ટ્રક્ચર
મેમરીડિક્યુ પછી ખાલી જગ્યાઓને કારણે અકાર્યક્ષમ મેમરી વપરાશખાલી જગ્યાઓનો ફરીથી ઉપયોગ કરીને કાર્યક્ષમ મેમરી વપરાશ
ઇમ્પ્લિમેન્ટેશનફ્રન્ટ હંમેશા ઇન્ડેક્સ 0 પર, રીયર વધેફ્રન્ટ અને રીયર મોડ્યુલો ઓપરેશન સાથે સર્ક્યુલર રીતે ફરે

ડાયાગ્રામ:

મેમરી ટ્રીક: "સાદી વેડફે, ગોળ ફરીથી વાપરે"

પ્રશ્ન 2(બ) OR [4 ગુણ]

રીકસીવ ફંક્શનનો કોન્સેપ્ટ યોગ્ય ઉદાહરણ સાથે સમજાવો.

જવાબ:

મુખ્ય પાસાઓવર્ણન
વ્યાખ્યાએવું ફંક્શન જે એક જ સમસ્યાના નાના ભાગને હલ કરવા માટે પોતાને જ કોલ કરે છે
બેઝ કેસએવી સ્થિતિ જ્યાં ફંક્શન પોતાને કોલ કરવાનું બંધ કરે છે
રિકર્સિવ કેસએવી સ્થિતિ જ્યાં ફંક્શન સમસ્યાના સરળ સ્વરૂપ સાથે પોતાને કોલ કરે છે

ડાયાગ્રામ:

કોડ:

Python

મેમરી ટ્રીક: "બેઝ તોડે, રિકર્શન પાછું આપે"

પ્રશ્ન 2(ક) OR [7 ગુણ]

Enqueue અને Dequeue ઓપરેશન માટેનો પાયથન કોડ વિકસાવો.

જવાબ:

ડાયાગ્રામ:

goat

કોડ:

Python

મેમરી ટ્રીક: "છેડે ઉમેરો, શરૂઆતથી કાઢો"

પ્રશ્ન 3(અ) [3 ગુણ]

સીન્ગલી લિન્ક્ડ લીસ્ટ અને સર્ક્યુલર લિન્ક્ડ લીસ્ટ નો તફાવત આપો.

જવાબ:

ફીચરસિંગલી લિન્ક્ડ લિસ્ટસર્ક્યુલર લિન્ક્ડ લિસ્ટ
છેલ્લો નોડNULL તરફ પોઇન્ટ કરે છેપહેલા નોડ તરફ પાછો પોઇન્ટ કરે છે
ટ્રાવર્સલચોક્કસ અંત ધરાવે છેસતત ટ્રાવર્સ કરી શકાય છે
મેમરીદરેક નોડને એક પોઇન્ટર જોઈએદરેક નોડને એક પોઇન્ટર જોઈએ

ડાયાગ્રામ:

goat

મેમરી ટ્રીક: "સિંગલી અટકે, સર્ક્યુલર ફરે"

પ્રશ્ન 3(બ) [4 ગુણ]

ડબલી લિન્ક્ડ લીસ્ટ નો કોન્સેપ્ટ સમજાવો.

જવાબ:

ડાયાગ્રામ:

goat
ફીચરવર્ણન
નોડ સ્ટ્રક્ચરદરેક નોડમાં ડેટા અને બે પોઇન્ટર્સ (previous અને next) હોય છે
નેવિગેશનઆગળ અને પાછળ એમ બંને દિશામાં ટ્રાવર્સ કરી શકાય છે
ઓપરેશન્સબંને છેડેથી ઇન્સર્શન અને ડિલીશન કરી શકાય છે
મેમરી વપરાશવધારાના પોઇન્ટરને કારણે સિંગલી લિન્ક્ડ લિસ્ટ કરતા વધુ મેમરી જોઈએ

કોડ:

Python

મેમરી ટ્રીક: "બે પોઇન્ટર, બે દિશા"

પ્રશ્ન 3(ક) [7 ગુણ]

નીચે આપેલ ઓપરેશન માટે અલગોરિધમ લખો: ૧. લીસ્ટ ની શરૂઆતમાં નોડ દાખલ કરવા ૨. લીસ્ટ ના અંતમાં નોડ દાખલ કરવા

જવાબ:

શરૂઆતમાં ઇન્સર્ટ:

અંતે ઇન્સર્ટ:

કોડ:

Python

મેમરી ટ્રીક: "શરૂઆત: નવો જૂનાને આગળ કરે, અંત: જૂનો નવાને આગળ કરે"

પ્રશ્ન 3(અ) OR [3 ગુણ]

સીન્ગલી લિન્ક્ડ લીસ્ટ પરના વિવિધ ઓપરેશન ની યાદી આપો.

જવાબ:

સિંગલી લિન્ક્ડ લિસ્ટ પરના ઓપરેશન
1. ઇન્સર્શન (શરૂઆતમાં, મધ્યમાં, અંતે)
2. ડિલીશન (શરૂઆતથી, મધ્યમાંથી, અંતથી)
3. ટ્રાવર્સલ (દરેક નોડની મુલાકાત)
4. શોધ (ચોક્કસ નોડ શોધવો)
5. અપડેટિંગ (નોડ ડેટા બદલવો)

ડાયાગ્રામ:

મેમરી ટ્રીક: "ઉમેરો કાઢો ફરો શોધો બદલો"

પ્રશ્ન 3(બ) OR [4 ગુણ]

સર્ક્યુલર લિન્ક્ડ લીસ્ટ નો કોન્સેપ્ટ સમજાવો.

જવાબ:

ડાયાગ્રામ:

goat
ફીચરવર્ણન
સ્ટ્રક્ચરછેલ્લો નોડ NULL ને બદલે પહેલા નોડને પોઇન્ટ કરે છે
ફાયદોબધા નોડમાં સતત ટ્રાવર્સલની અનુમતિ આપે છે
એપ્લિકેશનરાઉન્ડ રોબિન શેડ્યુલિંગ, સર્ક્યુલર બફર ઇમ્પ્લિમેન્ટેશન
ઓપરેશનછેલ્લા નોડ માટે ખાસ હેન્ડલિંગ સાથે સિંગલી લિન્ક્ડ લિસ્ટ જેવા ઇન્સર્શન અને ડિલીશન

કોડ:

Python

મેમરી ટ્રીક: "છેલ્લો પહેલાને જોડે"

પ્રશ્ન 3(ક) OR [7 ગુણ]

લિન્ક્ડ લીસ્ટની એપ્લીકેશનોની યાદી આપો. સીન્ગલી લિન્ક્ડ લીસ્ટમાં કુલ નોડ ગણવા માટેનો અલગોરિધમ લખો.

જવાબ:

લિન્ક્ડ લિસ્ટની એપ્લિકેશન
1. સ્ટેક અને ક્યુનો અમલીકરણ
2. ડાયનેમિક મેમરી એલોકેશન
3. એપ્લિકેશનમાં અન્ડુ ફંક્શનાલિટી
4. હેશ ટેબલ્સ (ચેઇનિંગ)
5. ગ્રાફ્સ માટે એડજસન્સી લિસ્ટ

નોડ ગણવા માટેનો અલ્ગોરિધમ:

કોડ:

Python

મેમરી ટ્રીક: "ગણો ત્યારે ખસો"

પ્રશ્ન 4(અ) [3 ગુણ]

લીનીયર સર્ચ અને બાયનરી સર્ચની સરખામણી કરો.

જવાબ:

ફીચરલીનીયર સર્ચબાયનરી સર્ચ
ડેટા ગોઠવણસોર્ટેડ અને અનસોર્ટેડ બંને ડેટા પર કામ કરે છેફક્ત સોર્ટેડ ડેટા પર કામ કરે છે
ટાઇમ કોમ્પ્લેક્સિટીO(n)O(log n)
ઇમ્પ્લિમેન્ટેશનસરળવધુ જટિલ
શેના માટે શ્રેષ્ઠનાના ડેટાસેટ અથવા અનસોર્ટેડ ડેટામોટા સોર્ટેડ ડેટાસેટ

ડાયાગ્રામ:

goat

મેમરી ટ્રીક: "લીનીયર બધું જુએ, બાઈનરી આધું કાપે"

પ્રશ્ન 4(બ) [4 ગુણ]

સિલેકશન સોર્ટ માટેનો અલગોરિધમ લખો.

જવાબ:

ડાયાગ્રામ:

goat

અલ્ગોરિધમ:

કોડનો ઢાંચો:

Python

મેમરી ટ્રીક: "લઘુતમ શોધો, પોઝિશન બદલો"

પ્રશ્ન 4(ક) [7 ગુણ]

નીચે આપેલા લીસ્ટ ને બબલ સોર્ટ મેથડ વડે ચઢતા ક્રમમાં ગોઠવવા માટેનો પાયથન કોડ વિકસાવો. list1=[5,4,3,2,1,0]

જવાબ:

ડાયાગ્રામ:

goat

કોડ:

Python

મેમરી ટ્રીક: "મોટા બબલ ઉપર જાય"

પ્રશ્ન 4(અ) OR [3 ગુણ]

સોર્ટિંગ ની વ્યાખ્યા આપો. વિવિધ પ્રકારના સોર્ટિંગ ની યાદી આપો.

જવાબ:

વ્યાખ્યાસોર્ટિંગ મેથડ્સ
સોર્ટિંગ એટલે ડેટાને ચોક્કસ ક્રમમાં (ચઢતા અથવા ઉતરતા) ગોઠવવાની પ્રક્રિયા1. બબલ સોર્ટ
2. સિલેક્શન સોર્ટ
3. ઇન્સર્શન સોર્ટ
4. મર્જ સોર્ટ
5. ક્વિક સોર્ટ
6. હીપ સોર્ટ
7. રેડિક્સ સોર્ટ

ડાયાગ્રામ:

મેમરી ટ્રીક: "સારા સોર્ટથી શોધવાનું સરળ બને"

પ્રશ્ન 4(બ) OR [4 ગુણ]

Insertion sort method નો અલગોરિધમ લખો.

જવાબ:

ડાયાગ્રામ:

goat

અલ્ગોરિધમ:

કોડનો ઢાંચો:

Python

મેમરી ટ્રીક: "કાર્ડ લો, યોગ્ય ક્રમમાં મૂકો"

પ્રશ્ન 4(ક) OR [7 ગુણ]

નીચે આપેલા લીસ્ટ ને સિલેકશન સોર્ટ મેથડ વડે ચઢતા ક્રમમાં ગોઠવવા માટેનો પાયથન કોડ વિકસાવો. list1=[6,3,25,8,-1,55,0]

જવાબ:

ડાયાગ્રામ:

goat

કોડ:

Python

મેમરી ટ્રીક: "નાનામાં નાનું શોધો, આગળ મૂકો"

પ્રશ્ન 5(અ) [3 ગુણ]

Tree data structure ને લગતા નીચે આપેલ પદોની વ્યાખ્યા આપો. 1. Forest 2. Root node 3. Leaf node

જવાબ:

પદવ્યાખ્યા
Forestઅલગ-અલગ ટ્રીઓનો સમૂહ (ટ્રીઓ વચ્ચે કોઈ જોડાણ નથી)
Root Nodeટ્રીનો સૌથી ઉપરનો નોડ જેનો કોઈ પેરેન્ટ નથી, જેનાથી બધા બીજા નોડ્સ ઉતરે છે
Leaf Nodeએવો નોડ જેને કોઈ ચિલ્ડ્રન નથી (ટ્રીના તળિયે આવેલો ટર્મિનલ નોડ)

ડાયાગ્રામ:

goat

મેમરી ટ્રીક: "ફોરેસ્ટમાં ઘણા રૂટ, રૂટથી બધું શરૂ, લીફ્સ બધું પૂરું"

પ્રશ્ન 5(બ) [4 ગુણ]

78,58,82,15,66,80,99 માટે Binary search tree દોરો અને તે tree માટેનું In-order traversal લખો.

જવાબ:

બાઈનરી સર્ચ ટ્રી:

goat

ઇન-ઓર્ડર ટ્રાવર્સલ:

સ્ટેપવિઝિટ ક્રમ
178 ના ડાબા સબટ્રી પર જાઓ
258 ના ડાબા સબટ્રી પર જાઓ
315 ને વિઝિટ કરો
458 ને વિઝિટ કરો
566 ને વિઝિટ કરો
678 ને વિઝિટ કરો
782 ના ડાબા સબટ્રી પર જાઓ
880 ને વિઝિટ કરો
982 ને વિઝિટ કરો
1099 ને વિઝિટ કરો

ઇન-ઓર્ડર ટ્રાવર્સલ રિઝલ્ટ: 15, 58, 66, 78, 80, 82, 99

મેમરી ટ્રીક: "ડાબું, રૂટ, જમણું"

પ્રશ્ન 5(ક) [7 ગુણ]

નીચે આપેલ ઓપરેશન માટે અલગોરિધમ લખો: ૧. Binary Tree માં નોડ દાખલ કરવા ૨. Binary Tree માંથી નોડ કાઢવા માટે

જવાબ:

ઇન્સર્શન અલ્ગોરિધમ:

ડિલીશન અલ્ગોરિધમ:

કોડ:

Python

મેમરી ટ્રીક: "ખાલી જગ્યાએ ઉમેરો, બદલીને કાઢો"

પ્રશ્ન 5(અ) OR [3 ગુણ]

Tree data structure ને લગતા નીચે આપેલ પદોની વ્યાખ્યા આપો. 1. In-degree 2. Out-degree 3. Depth

જવાબ:

પદવ્યાખ્યા
In-degreeનોડમાં આવતી એજ્જીસની સંખ્યા (ટ્રીમાં પ્રત્યેક નોડ માટે (રૂટ સિવાય) હંમેશા 1 હોય છે)
Out-degreeનોડમાંથી બહાર જતી એજ્જીસની સંખ્યા (નોડના ચિલ્ડ્રનની સંખ્યા)
Depthરૂટથી નોડ સુધીના પાથની લંબાઈ (પાથમાં એજ્જીસની સંખ્યા)

ડાયાગ્રામ:

goat
નોડIn-degreeOut-degree
A02
B12
C11
D10
E10
F10

મેમરી ટ્રીક: "ઈન કાઉન્ટ્સ પેરેન્ટ્સ, આઉટ કાઉન્ટ્સ ચિલ્ડ્રન, ડેપ્થ કાઉન્ટ્સ એજ્જીસ ફ્રોમ રૂટ"

પ્રશ્ન 5(બ) OR [4 ગુણ]

નીચે દર્શાવેલા Binary tree માટે Preorder and postorder traversal લખો.

બાઈનરી ટ્રી:

goat

જવાબ:

ટ્રાવર્સલક્રમરિઝલ્ટ
Preorderરૂટ, ડાબું, જમણું100, 20, 10, 30, 200, 150, 300
Postorderડાબું, જમણું, રૂટ10, 30, 20, 150, 300, 200, 100

પ્રીઓર્ડર વિઝ્યુઅલાઈઝેશન:

પોસ્ટઓર્ડર વિઝ્યુઅલાઈઝેશન:

મેમરી ટ્રીક:

  • પ્રીઓર્ડર: "રૂટ પહેલા, પછી બાળકો"
  • પોસ્ટઓર્ડર: "બાળકો પહેલા, પછી રૂટ"

પ્રશ્ન 5(ક) OR [7 ગુણ]

Binary Search Tree રચવા માટેનો પાયથન કોડ વિકસાવો.

જવાબ:

ડાયાગ્રામ:

કોડ:

Python

ઉદાહરણ આઉટપુટ:

ઇનઓર્ડર ટ્રાવર્સલ: 20 30 40 50 60 70 80
પ્રીઓર્ડર ટ્રાવર્સલ: 50 30 20 40 70 60 80
પોસ્ટઓર્ડર ટ્રાવર્સલ: 20 40 30 60 80 70 50

મેમરી ટ્રીક: "નાના ડાબે, મોટા જમણે"