Avatar billede mickni33 Nybegynder
13. marts 2001 - 11:30 Der er 14 kommentarer og
1 løsning

B-Tree og Hash tabeller

hvor finder jeg Kode og teori til disse emner på nettet
Avatar billede disky Nybegynder
13. marts 2001 - 11:31 #1
Avatar billede moykal Nybegynder
13. marts 2001 - 11:42 #2
Der findes, hvis du er C++-programmør, masser i STL, der leveres med til enhver C++-compiler
Avatar billede soepro Nybegynder
13. marts 2001 - 11:55 #3
Michael >> Hvad er STL ???
Avatar billede moykal Nybegynder
13. marts 2001 - 12:58 #4
Hej igen soepro,

Jeg antager at du bare driller mig lidt tilbage - sorry at jeg er lidt grov, men jeg kan ikke lade være med at fare i flindt, når der bliver hakket på grønne folk. Hvilket du jo egentligt ikke gjorde. Men HVIS du ikke kender STL, så prøv det. Du vil i mange henseender elske det. Det er Standard Template Library. I princippet slipper du for selv at skrive containere (lænkede lister, vektorer, stakke, køer, associative arrays etc) for al fremtid. Og STL er fantastisk vel-struktureret:

1) Containers, dvs. placeholders for dine elementer.
2) Iteratorer, dvs. \"pointere\", simple måder hvormed du traverserer dine containere.
3) Algoritmer.

Det virker helt plug\'n\'play. Hvis du er interesseret, kan jeg anbefale Musser og Sainis bog fra Addison-Wesley. Jeg har også på indtil flere spørgsmål tidligere anbefalet et par gratis bøger på nettet, hvor en af dem er om STL. Jeg kan godt finde linket til dig, hvis du er interesseret.
Avatar billede moykal Nybegynder
13. marts 2001 - 13:08 #5
Lige en lille advarsel. HVIS i vil anvende STL OG i C++ anvender ATL (Active Template Library) altså Microsofts lækre indpakning af COM-komponenter, så be warned. Det er omtalt i \"ATL internals\", men man tænker ikke nødvendigvis over det. Læs om CAdapt<>-templaten, før i mixer dem. Bare for at i ikke crasher og mister modet.
Avatar billede disky Nybegynder
13. marts 2001 - 13:09 #6
Hej Micknii33

Hvis du vil læse om den spændende teori abg disse emner søg på www.google.com der fidner du uhyggeligt meget om disse emner.

Hvis du vil lære det er det en dum ide at bruge STL, lav hellere dine egne, så lærer man bedre
Avatar billede moykal Nybegynder
13. marts 2001 - 13:18 #7
What? Teorien omkr. datastrukturer, lærer man da enten på UNI, eller køber en god bog om det. Men det er da helt totalt grundlæggende misforstået at gå igang med at kode andet end hygge-eksempler op selv. Med mindre man:

1) Har et specifikt behov, som ikke kan løses af samtlige varianter af STL.
2) Er studerende i enten datalogi eller mere jordnær programmering og derfor har tiden og behovet for sådant.

Altså: Plauger og andre implementører har gjort et ekseptionelt stykke arbejde for at arbejde henimod at programmering i C++ ikke er en genopfindelse af hjulet hver gang. Når folk selv opfinder deres egne special-containere med underlige interfaces, kan man nemt på et bare nogenlunde komplekst projekt ende i et totalt helvede med at interface mellem de forskellige moduler. STL er en måde at snakke samme \"sprog\" på, samtidig med at man på mere fingranuleret niveau kan justere, hvor der end måtte være behov. Overholder man samtidigt \"spillereglerne\", dvs. for en container definerer iteratorer, begin(), end()... så Plug\'er det fint ind i frameworket.

Hvori udmærker google sig i forhold til andre sites? Jeg troede mere at man skulle interessere sig for CS-sites, hvis man vil have specifik viden om hashing etc. F.eks. på ???.lanl.gov
Avatar billede disky Nybegynder
13. marts 2001 - 13:21 #8
moykal: jeg ved udemærket godt hvordan man lærer om datastrukturer og algoritmer.

Men skal man forstå det er det bedste at læse om det og lave dem selv, jeg sagde intet om at man skulle bruge dem i stedet for STL. Jeg skrev at det var en dum ide bare at bruge STL hvis man ønskede at lære om det !!

www.google.com er bare en særdeles god søgemaskine når det drejer sig om ting der har med computer/programmering at gøre (imho)

CS-site ? hvad er det counter strike ?
Avatar billede moykal Nybegynder
13. marts 2001 - 13:22 #9
Computer-Science... http://xxx.lanl.gov
Avatar billede disky Nybegynder
13. marts 2001 - 13:23 #10
okay,

den site kan godt bruges, men google dækker lidt mere end bare en site
Avatar billede moykal Nybegynder
13. marts 2001 - 13:27 #11
Ja - selvfølgeligt dækker en søgemaskine mere end en site. Har du egentligt nogle gode ressourcer liggende omkr. ordentlige hash-algoritmer? Jeg gider ikke lige sidde og surfe efter det på en søgemaskine. Bare send dem til michael_w_olesen@hotmail.com
Avatar billede disky Nybegynder
13. marts 2001 - 13:28 #12
jeg skal prøve at scanne min bookmark liste.

Avatar billede brian@diku Nybegynder
13. marts 2001 - 15:32 #13
hmmm, synes de tidligere svar virker lidt i øst og vest.

Men udfra hvad jeg vedm, så er
B-tree database teori/algorithmer og hashing sortings algoritmer, som der findes tonsvis af på nettet.

Du kan søge på google på \"database b tree\" eller lign. du kan f.eks. kigge på:

http://www.public.asu.edu/~peterjn/btree/

som har en pedagoisk beskrivelse. Men mit råd ville dog være at rode lidt med hob og binær træer før du kaster dig ud i b-trees.

Men ang. hashing så er der lige gennemgået noget på dat0 på diku, som du sikkert kan få glæde af:

http://www.diku.dk/teaching/2001f/dat0/filer200001/chap07.ps

http://www.diku.dk/teaching/2001f/dat0/filer200001/chap07.pdf

jeg har ikke set det forklaret bedre, så derfor vil jeg undlade det. Men du kan altid skrive til min email, hvis det virker sort (næppe).

Eksemplerne er i Java, men det skulle være til at abstrahere fra.


Brian
Avatar billede mickni33 Nybegynder
13. marts 2001 - 18:26 #14
Ok brian dine svar var bare helt suveræne
Avatar billede brian@diku Nybegynder
13. marts 2001 - 18:32 #15
hashing er selv søgning og ikke sortering ... ehhh .. hvorfor fanden skrev jeg også det hmmm
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester