Tentamen kl Uppgift 4. Uppgift 5

Relevanta dokument
Grundläggande Datalogi för F

Exempeltenta GruDat 2002/2003

Träd Hierarkiska strukturer

Grundläggande Datalogi för F

Tentamen Datastrukturer för D2 DAT 035

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Tentamen i Algoritmer & Datastrukturer i Java

Seminarium 13 Innehåll

Föreläsning 9 Datastrukturer (DAT037)

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

KTH, NADA, Vahid Mosavat. 1. Flervalsfrågor (5p)

Lösningar Datastrukturer TDA

Tentamen Datastrukturer D DAT 035/INN960

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Tentamen i Algoritmer & Datastrukturer i Java

Föreläsning 13 Datastrukturer (DAT037)

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Föreläsning Datastrukturer (DAT036)

Tentamen, Algoritmer och datastrukturer

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Datastrukturer. föreläsning 3. Stacks 1

Tentamen Datastrukturer D DAT 035/INN960

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

Föreläsning 13 Innehåll

DAI2 (TIDAL) + I2 (TKIEK)

Föreläsning 13 Datastrukturer (DAT037)

Datastrukturer. föreläsning 10. Maps 1

DD1320 Tillämpad datalogi. Lösning (skiss) till tenta 20 okt 2011

Trädstrukturer och grafer

Föreläsning 10 Datastrukturer (DAT037)

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.

Föreläsning Datastrukturer (DAT037)

Föreläsning 4 Datastrukturer (DAT037)

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Vad har vi pratat om i kursen?

13 Prioritetsköer, heapar

Tentamen Datastrukturer (DAT036)

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Föreläsning 9 Innehåll

Sökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Datastrukturer. föreläsning 9. Maps 1

Tentamen TEN1 HI

Programmering i C++ EDA623 Dynamiska datastrukturer. EDA623 (Föreläsning 11) HT / 31

Tentamen Datastrukturer D DAT 036/INN960

Föreläsning Datastrukturer (DAT036)

Länkade strukturer, parametriserade typer och undantag

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datastrukturer. Föreläsning 5. Maps 1

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Fredag 10 juni 2016 kl 8 12

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Föreläsning 14 Innehåll

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Algoritmer och datastrukturer 2012, fo rela sning 8

Datastrukturer. föreläsning 9. Maps 1

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Föreläsning 7 Datastrukturer (DAT037)

Tentamen Datastrukturer D DAT 036/INN960

Tentamen Datastrukturer (DAT036)

Lösningsförslag till exempeltenta 1

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Magnus Nielsen, IDA, Linköpings universitet

Lösningsförslag till tentamen Datastrukturer, DAT037,

Inlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen

Tentamen i Algoritmer & Datastrukturer i Java

Föreläsning 9 Innehåll

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datastrukturer och algoritmer

Övning 2. (Länkade) Listor, noder

Föreläsning 7. Träd och binära sökträd

Programmering i C++ EDAF30 Dynamiska datastrukturer. EDAF30 (Föreläsning 11) HT / 34

Föreläsning 5 Innehåll

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen (del 2) (4 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Föreläsning Datastrukturer (DAT036)

Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'

Sortering. Brute-force. Sortering Ordna element enligt relation mellan nyckelvärden

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

Övningsuppgifter #11, Programkonstruktion och datastrukturer

Föreläsning 4 Innehåll

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Föreläsning Datastrukturer (DAT037)

Föreläsning 3 Datastrukturer (DAT037)

Programkonstruktion och. Datastrukturer

Tentamen Datastrukturer D DAT 036/DIT960

Tentamen TEN1 HI

Lösningsförslag till tentamen Datastrukturer, DAT037,

Tentamen Datastrukturer (DAT036)

Transkript:

2D344 Grundläggande Datalogi för F Tentamen 2003-03-0 kl 4.00 9.00 Inga hjälpmedel. Endast ett svarsalternativ på varje fråga är korrekt. Felaktigt svar eller felaktigt antal ikryssade svarsalternativ ger noll poäng på uppgiften. Preliminära betygsgränser: U: 0 29 poäng 3: 30 37 poäng 4: 38 44 poäng 5: 45 50 poäng Uppgift Varför kan dubbellänkade listor ibland vara att föredra framför enkellänkade? A) Insättning och borttagning i listans början blir enklare. B) Det är enklare att ta bort och sätta in element när man har en referens till positionen i listan. C) Det går fortare att söka efter element. D) De tar mindre plats. Uppgift 2 Iterator är ett abstrakt gränssnitt som används för vad? A) Succesivt gå igenom alla elementen i en datastruktur. B) Ersätta index vid manipulering av vektorer (array). C) agring av sekvenser av abstrakta dataelement. Uppgift 4 Vad innebär det att en hashfunktion är bra? A) Den genererar unika nyckelvärden. B) Alla förekommande nyckelvärden ger primtal som resultat. C) Samma nyckelvärde ger oftast samma resultat. D) Förekommande nyckelvärden sprids ut så jämnt som möjligt. Uppgift 5 Vilken av nedan föreslagna hashfunktioner är bäst? Du kan anta att nycklarna är strängar innehållande efternamn. Parametern n är hashtabellens storlek, ett primtal i intervallet 000 < n < 00 000. A) int hash(string s, int n) { int sum = 0; for (int i=0; i<s.strlen(); i++) sum += s.charat(i); D) Succesivt öka värdet på en abstrakt variabel. return sum % n; Uppgift 3 Antag att vi vill lagra n namn i en hashtabell där kollisionerna hanteras med enkellänkade listor ( separate chaining ). Hur många jämförelser behövs det i medeltal för att hitta ett givet namn? A) O() B) O(n) C) O(log n) D) O(n 2 ) B) int hash(string s, int n) { int sum = 0; for (int i=0; i<s.strlen(); i++) sum = sum * 7 + s.charat(i); return sum % n; C) int hash(string s, int n) { int sum = 0; for (int i=0; i<s.strlen(); i++) sum += s.charat(i) % n; return sum;

D) int hash(string s, int n) { int sum = 0; for (int i=0; i<s.strlen(); i++) sum *= s.charat(i); B) O(n) C) O(n log n) D) O(n 2 ) return sum % n; Uppgift 9 Uppgift 6 Antag att vi har ett binärt sökträd och vill ta bort en nod x så att trädet fortfarande är ordnat efter operationen. Hur gör man i fallet när när x endast har ett barn? A) Byt först x med sitt barn, tag därefter bort x och dess (nya) barn. B) Byt först x med sin förälder, tag därefter bort x. C) Ersätt x med sin förälder. D) Ersätt x med sitt barn. Uppgift 7 Vad är detta för sökalgoritm? def search(key, v): a = 0 b = v.length while b>a: m = (a+b)/2 if v[m] == key: return m if v[m] < key: a = m+ else: b = m- A) trädsökning B) linjärsökning C) binärsökning D) hashsökning Uppgift 8 Hur snabb är bubbelsortering i medelfallet när man sorterar n element? A) O(log n) Antag att vi har en liten hashtabell med plats för 3 element. Antag vidare att linjär probning (med steget ett) används för att hantera kollisioner. Vad blir slutresultatet när strängarna Sverige, Norge, Danmark, Finland och Island i denna ordning succesivt läggs in i tabellen. Vår hash-funktion, h, ger förljande svar: h( Sverige ) 3 h( Norge ) 28 h( Danmark ) 5 h( Finland ) 25 h( Island ) 2 A) 0: Island 2: Norge 3: Sverige 4: Danmark 2: Finland B) 0: Island 2: Danmark 3: Norge 4: Sverige 2: Finland C) 2: Norge, Danmark 3: Sverige 2: Finland, Island D) 2: Norge 3: Sverige 4: Danmark 2: Island 3: Finland Uppgift 0 Vilken av följande kodningar är en korrekt Huffmankodning för data med dessa förekomstsekvenser: a 35% b 2% c 7% d 5% e 7% f 5% A) a :0 b : c :0 d :0 e :0 f :00 B) a :0 b :00 c : d :0 e :00 f :0 2

C) a :0 b : c :0 d :0 e :0 f :0 D) a :00 b :0 c : d :00 e :00 f :0 Uppgift C) Det är ett ordnat binärt träd som med fördel kan lagras i en vektor. D) Det är ett balanserat binärt träd där nyckeln för vänstra barnet alltid är mindre än nyckeln för högra barnet. Vad är speciellt med ett suffix trie träd? A) Trädet lagrar strängarna från slutet. B) Trädet lagrar strängarna från alla startpositioner. C) Trädet byggs från löven och uppåt. D) Slutet av varje sträng är löv i trädet. Uppgift 2 Boyer-Moore s algoritm går fort för att man A) jämför från mönstrets slut så att man kan hoppa fram långt. B) utnyttjar att strängarna är sorterade. C) undviker att backa tillbaka och på nytt jämföra samma tecken igen. D) jämför med de ovanligaste tecknen först. Uppgift 5 Vad är divide-and-conquer? A) En effektiv algoritm för division. B) Ett effektivt sätt att göra om enkellänkade till dubbellänkade listor. C) En operation för att hålla träd balanserade vid insättning. D) En generell teknik för att konstruera algoritmer. Uppgift 6 Vilken sorteringsmetod kan man relativt enkelt modifiera så att den snabbt räknar ut medianvärdet av ett stort antal tal? Uppgift 3 Vilken av följande datastrukturer är bäst när man snabbt vill avgöra ifall en sträng utgör början av ett känt ord. A) Ett trie-träd med alla kända ord. B) En Hash-tabell med alla kända ord. C) Ett AV-träd med alla kända ord. D) En Skip-lista med alla kända ord. Uppgift 4 Vad karaktäriserar bäst en heap? A) Det är ett sorterat binärt träd där höjden för varje delträd skiljer sig med högst ett för syskon-noder. B) Det är ett komplett binärt träd där barnen alltid har större nyckelvärde än föräldern. A) Heapsort B) Quicksort C) Bubblesort D) Mergesort Uppgift 7 En av de snabba sorteringsalgoritmerna har problem att sortera redan ordnade data (ifall man inte modifierar algoritmen). Vilken? A) Bubbelsort B) Quicksort C) Heapsort D) Mergesort 3

Uppgift 8 Vilken av dessa implementationer av gränssnittet dictionary kräver inte att nycklarna är jämförbara (ordnade)? A) Binärt sökträd B) Hashtabell C) (2,4)-träd D) Skiplist Uppgift 9 Vilken abstrakt datatyp brukar innehålla accessmetoderna push och pop? A) Stack B) Hashtable C) Dictionary D) Queue Uppgift 20 I vilken ordning behandlar man noderna vid en postorder-genomgång av följande träd? B A) D, B, E, A, C, F B) A, B, D, E, C, F C) D, E, F, B, C, A D) D, E, B, F, C, A Uppgift 2 A C D E F Vad menas med att ett binärt träd är balanserat? B) Summan av nyckelvärdena i höger och vänster delträd är lika. C) Alla vägar från roten till löven är ungefär lika långa. D) Alla noder har antingen två eller inga barn. Uppgift 22 Antag att man lagrar en heap i form av en vektor så att noden vid index i har vänster barn vid 2i och höger barn vid 2i +. Heapen har från början följande innehåll: 5 3 7 28 5 35 30 45 7 90 (första elementet har index ) Vad blir resultatet ifall man tar bort rotelementet och återställer heapegenskaperna? A) 7 3 7 28 5 35 30 90 45 B) 7 3 28 5 90 35 30 45 7 C) 7 3 7 28 5 35 30 45 90 D) 7 3 28 5 7 35 30 45 90 Uppgift 23 Antag att ett Java-program innehåller följande klassdefinitioner: class Foo { public void hej() { System.out.println("Hej"); class Bar extends Foo { public void hej() { System.out.println("Hopp"); Vad blir utskriften från följande satser? Bar x = new Bar(); Foo y = x; x.hej(); y.hej(); A) Alla noder i vänster delträd är mindre än roten och alla i höger delträd är större. A) Hopp Hopp 4

B) Hej Hopp C) Hopp Hej D) Hej Hej Uppgift 24 q.enqueue(2); q.enqueue(7); y = q.dequeue(); A) 7 2 47 7 0 0 0 0 0 B) 7 2 0 0 0 0 0 0 0 C) 7 47 2 7 0 0 0 0 0 D) 2 7 0 0 0 0 0 0 0 Vad är körtiden (värsta fallet) för denna algoritm? algoritm Mysko(v): In: vektor v med längden n Uppgift 27 Vad är detta? a = v[0] for i=..n/2: if v[i] + v[n-i] > a: a = v[i] return a A B E A B E A) O(log n) B) O(n) C) O(n log n) B E E D) O(n 2 ) Uppgift 25 Vilken datastruktur är lämplig att använda i en algoritm som ska räkna hur ofta olika ord förekommer i en mycket stor textmassa. A) Ett suffixtrie. B) Ett (2,4)-träd. C) Ett brute-force-träd. D) Ett huffman-träd. A) En stack. B) En kö. C) En dubbellänkad lista. D) En hashtabell. Uppgift 28 Hur många sammanhängande delar har grafen som beskrivs av denna kopplingsmatris? ( betyder att kanten existerar, 0 att den saknas) Uppgift 26 Antag att vi representerar en kö i form av en vektor (array) samt två index som håller reda på köns början och slut på ett effektivt sätt. Vektorn och indexvariablerna är från början nollställda. Vad kommer vektorn att innehålla efter nedanstående operationer? q.enqueue(7); q.enqueue(47); x = q.dequeue(); A) B) 2 C) 3 D) 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5

Uppgift 29 Hur många element (n) finns det i ett (2,4)-träd med höjden 2? A) 7 n 48 B) 7 n 63 A) 7 47 0 2 7 0 0 0 0 B) 7 2 47 0 0 0 0 0 0 C) 7 2 7 0 0 0 0 0 0 D) 7 47 2 7 0 0 0 0 0 C) 3 n 48 D) 3 n 63 Uppgift 30 Vad är det som definierar en ADT? A) Den datastruktur som används. B) Konstruktorn. C) De operationer som tillåts. D) Instansvariablerna i motsvarande klass. Uppgift 3 I vissa metoddefinitioner finns en throws-del. Vad betyder den? A) Att metoden använder minst en try-sats. B) Att metoden inte returnerar något värde som resultat. C) Att metoden definierar en exception. Uppgift 33 Hur hittar man enklast mittenelementet i en enkellänkad lista? A) Stega från båda hållen mot mitten. B) Stega från början till slutet och räkna antalet element. Gå därefter bakåt hälften så många steg. C) Stega från början till slutet och räkna antalet element. Gå därefter hälften så många steg från början igen. D) Dela upp listan i två genom att lägga varannat element i en och varannat i en annan lista. Uppgift 34 Diametern av en viktad graf definieras som det största avståndet mellan två hörn. Vad är diametern för denna graf? D) Att man kan komma ut ur metoden genom en exception. Uppgift 32 Antag att vi representerar en stack i form av en vektor (array) samt ett index som håller reda på stackens topp. Vektorn och indexvariablerna är från början nollställda. Vad kommer vektorn att innehålla efter nedanstående operationer? A) s = new Stack(); s.push(7); s.push(47); x = s.pop(); s.push(2); s.push(7); B) 2 C) 3 D) 4 6

Uppgift 35 Är detta korrekta AV-träd? Uppgift 38 Vad är trinode restructuring? 2 3 4 7 2 7 6 27 7 A) Omflyttning i ett AV-träd som krävs när en nod innehåller mer än tre nycklar. B) Omflyttning av tre noder som krävs när man tar bort en inre nod i ett binärt sökträd. C) Omflyttningen som man gör vid insättning i en heap för att heapvillkoren ska fortsätta att vara uppfyllda. A) Nej, inget är korrekt. B) Endast det vänstra är korrekt. C) Endast det högra är korrekt. D) Båda är korrekta. Uppgift 36 När är det lämpligt att använda dynamisk programmering? A) När man iterativt behöver gå igenom flera alternativ för att hitta den bästa lösningen. B) För optimeringsproblem som kan delas upp i delar där samma delresultat behövs flera gånger. C) I situationer när man inte i förväg vet hur mycket indata programmet kommer att få. D) När man har tillgång till en skräpsamlare, t.ex. i Java. Uppgift 37 Vad är alltid sant för en DAG (Directed Acyclic Graph).. Hörnen kan numreras så att kanterna alltid leder mot hörn med lägre nummer. 2. Det finns minst lika många kanter som hörn. D) Omflyttning av tre noder och fyra delträd för att återställa balansen i ett AV-träd. Uppgift 39 Vad gör denna algoritm? algoritm Mysko(x, y) p = x while p!= null if p.data == y return p if p.data > y p = p.left else p = p.right return p A) etar efter nyckeln x i ett binärt sökträd y B) Sätter in nyckeln x i det binära sökträdet y C) Sätter in nyckeln y i det binära sökträdet x D) etar efter nyckeln y i ett binärt sökträd x Uppgift 40 Antag att man i en från början tom skiplista sätter in element med nycklarna 7, 7 och 7 (i denna ordning). Hur kommer dessa element att vara hoplänkade i skiplistan efter dessa insättningar? 7 7 7 7 A) Varken eller 2. 7 7 7 7 7 7 B) men inte 2. C) 2 men inte. D) Både och 2. A) Varken som i den vänstra eller högra figuren. B) Som i den vänstra figuren men inte som i den högra. 7

C) Som i den högra figuren men inte som i den vänstra. D) Kan se ut som i båda figurerna. Uppgift 4 Givet följande (2,4)-träd, hur kommer trädes truktur att förändras när man lägger till ett nytt element med nyckeln 7? Uppgift 43 Om man gör en djupet-först genomgång av noderna i grafen nedan, med början i noden X, vilken av noderna A, B eller C kommer man då att besöka först? X A B C 3 7 25 A) Varken höjden eller antalet noder ändras. B) Höjden ökar med ett men antalet noder bevaras. C) Antalet noder ökar med ett men höjden bevaras. D) Antalet noder ökar med ett och höjden ökar med ett. Uppgift 42 Antag att man har ett binärt sökträd. Vilken av följande algoritmer skriver ut nyckelvärdena i sorterad ordning? A) algoritm Mysko(root) if not empty(root) Mysko(root.left) Mysko(root.right) B) algoritm Mysko(root) if not empty(root) Mysko(root.left) Mysko(root.right) C) algoritm Mysko(root) if not empty(root) Mysko(root.left) Mysko(root.right) D) algoritm Mysko(root) if not empty(root) Mysko(root.left) Mysko(root.right) A) Nod A B) Nod B C) Nod C D) Det går inte att avgöra. Uppgift 44 Vilken sorteringsalgoritm används när man succesivt får dessa mellanresultat i den sorterade vektorn? 3 5 9 3 6 8 6 5 9 3 3 8 6 5 3 9 3 8 6 5 3 8 9 3 3 5 6 8 9 3 A) Mergesort B) Bubbelsort C) Heapsort D) Quicksort Uppgift 45 Antag att man lagrat 000 element i ett AV-träd och konstaterar att det i medeltal tar 7 ms att hitta ett element från dess nyckelvärde. Hur lång tid kan man förvänta sig att det tar om man istället lagrar 000 000 element? A) 34 ms B) 70 ms C) 289 ms D) 7 s 8

Uppgift 46 Vilken av dessa operationer ger upphov till en splitoperation för nedanstående (2,4)-träd? Uppgift 49 Vad menas när man säger att en algoritm är girig (Greedy)? 3 20 A) Den gör ett lokalt bästa drag i varje steg. 3 7 0 6 8 25 B) Den utnyttjar maximalt med resurser. C) Den går igenom alla möjliga fall. A) Insättning av ett nytt element med nyckeln 7. B) Insättning av ett nytt element med nyckeln 5. C) Borttagning av elementet med nyckeln 3. D) Borttagning av elementet med nyckeln 25. Uppgift 47 Vad är sant för den riktade graf som definieras av följande kopplingsmatris, där representerar att kanten existerar? 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A) Den är sammanhängande. B) Det finns en Euler tour. C) Den är en DAG (Directed Acyclic Graph). D) Den är ett träd. Uppgift 48 Vad menas med en metods signatur i Java? A) Klassen där metoden är definierad. B) Metodens namn, antal parametrar samt deras typ. C) Metodens körtid, utan hänsyn till konstanta skalfaktorer. D) Metodens synlighet i andra klasser. D) Den utnyttjar minimalt med resurser. Uppgift 50 Antag att vi har en n n-matris A med bara nollor och ettor som värden, där alla ettor kommer före nollorna på varje rad. Vilken av följande algoritmer hittar snabbast (för stora n, värsta fallet) den rad som har flest ettor och returnerar detta antal? A) max = 0 for i =..n j = max+ while j<=n and A[i,j]== j = j+ max = j- return max B) for i = n.. for j =..n if A[j,i] == return i return 0 C) max = 0 for i =..n count = 0 for j =..n if A[i,j] == count = count+ if count > max max = count return max D) max = 0 for i =..n for j =..n if A[i,j] == if j > max max = j return max 9