Vra

Wat is die mees algemene probleme wat opgelos kan word met beide hierdie data strukture?

Dit sou goed wees vir my om ook aanbevelings oor boeke wat:

  • Implementeer die strukture
  • Implementeer en verduidelik die redenasie van die algoritmes wat gebruik hulle
Was dit nuttig?

Oplossing

Die eerste ding wat ek dink oor wanneer ek hierdie vraag te lees is:?. watter tipe dinge gebruik grafieke / bome en dan dink ek terug aan hoe ek hulle kan gebruik

Neem byvoorbeeld twee algemene gebruike van 'n boom:

  • Die DOM
  • Lêer stelsels

Die DOM, en XML vir die saak, lyk boom strukture.
alt text

Dit maak sin, ook. Dit maak sin as gevolg van hoe hierdie data moet gereël word . A lêerstelsel ook. Op 'n UNIX-stelsel is daar 'n wortel node, en vertakking af hieronder. Wanneer jy 'n nuwe toestel berg, jy dit aan te heg op die boom.

Jy moet ook jouself te vra: is die data val in hierdie tipe van struktuur? Skep datastrukture wat sin maak om die probleem en die res sal volg.

Sover as makliker, ek dink dis relatief. Is jy goed met rekursiewe funksies te deurkruis n boom / grafiek? Wat gebeur as jy nodig het om die boom te balanseer?

Dink aan 'n program wat 'n woord soek legkaart los. Jy kan die kaart uit al die letters van die woord soek na 'n grafiek en kyk rondom nodes om te sien of dit string is wat ooreenstem met enige van die woorde. Maar kon nie jou net dieselfde met doen met 'n enkele reeks? Al wat jy regtig nodig het om te doen is skuif 'n indeks om briewe te gaan na die links en regs, en deur die breedte aan bo en onder briewe te keur. Die oplossing van hierdie probleem met 'n grafiek is nie moeilik nie, maar dit kan 'n baie ekstra werk en moeite te skep as jy nie gemaklik met die gebruik van hulle - natuurlik dat jy nie moet ontmoedig om dit te doen, veral as jy die leer oor hulle.

Ek hoop dit help jy dink oor hierdie strukture. Soos vir 'n boek aanbeveling, wil ek hê om te gaan met Inleiding tot Algoritmes .

Ander wenke

Stroombaandiagramme.

Samestelling (Directed asikliese grafieke)

Maps. Baie kompak as grafieke.

Netwerk vloei probleme.

Besluit bome vir deskundige stelsels (sic)

Fishbone diagramme vir foutopsporing, proses Verbeterde, veiligheid ontleding. Vir bonus punte, implementeer jou fout herstel kode as voorwerpe wat is die visgraatdiagram.

Net oor elke probleem kan wees re-geskryf in terme van grafiekteorie. Ek is nie 'n grap, kyk na 'n boek op NP volledige probleme, daar is 'n paar mooi gek probleme wat verander in 'grafiekteorie, want ons het 'n goeie gereedskap vir die werk met grafieke ...

Die algoritme Design Manual bevat 'n paar interessante gevallestudies met kreatiewe gebruik van grafieke. Ten spyte van sy naam, die boek is baie leesbaar en selfs vermaaklike by tye.

Daar is 'n kursus vir sulke dinge by my universiteit: CSE 326 . Ek het nie gedink die boek was ook nuttig, maar die projekte is pret en leer jy 'n eerlike bietjie oor die implementering van 'n paar van die eenvoudiger strukture.

As voorbeelde, een van die mees algemene probleme (deur die aantal mense wat dit gebruik) dit is opgelos met bome is wat van selfoon teks invoer. Jy kan bome, nie noodwendig binêre gebruik, om die ruimte van moontlike woorde wat uit enige gegewe lys van getalle wat 'n gebruiker stoot in baie vinnig kan kom verteenwoordig.

Algoritmes vir Java: Deel 5 deur Robert Sedgewick is alles oor grafiek algoritmes en data strukture. Dit sou 'n goeie eerste boek om deur te werk as jy wil 'n paar grafiek algoritmes te implementeer.

toneel grafieke vir die opstel grafiese in die speletjies en multimedia programme swaar gebruik bome en grafieke. Nodes verteenwoordig voorwerpe gelewer moet word, transformasies, kontroles, groepe, ...

toneel grafieke het gewoonlik verskeie lae en eienskappe wat beteken dat jy net 'n paar node van 'n grafiek (eienskappe) in 'n bepaalde volgorde (lae) kan trek. Afhangende van die aard van die toneel grafiek jy dit kan twee parralel strukture het: verklarings en Instantiëring. Ste

@DavidJoiner / al:

FWIW: 'n Nuwe weergawe van die Algoritme Design Manual is te danke uit enige dag nou.

Die hele kursus wat hy prof Skiena hierdie boek ontwikkel vir is ook beskikbaar op die web:

http: //www.cs.sunysb. edu / ~ algorith / video-lesings / 2007-1.html

Bome word gebruik om 'n baie meer in funksionele programmeertale as gevolg van hul rekursiewe aard.

Ook, grafieke en bome is 'n goeie manier om 'n baie AI probleme te modelleer.

Speletjies dikwels gebruik grafieke om te fasiliteer om paaie oor die spel wêreld.Die grafiek voorstelling van die wêreld kan algoritmes soos breedte-eerste soektog of'n* in orde te vind'n roete oor dit.

Hulle het ook dikwels gebruik om bome te verteenwoordig entiteite binne die wêreld.As jy het duisende van entiteite en nodig het om te vind op'n sekere posisie dan iterating lineêr deur middel van'n lys kan ondoeltreffende, veral as jy nodig het om te doen dit dikwels.Daarom is die area onderverdeel kan word in'n boom te laat om dit te deursoek word meer vinnig.Net soos'n lineêre ruimte kan doeltreffend gesoek met'n binêre soek (en dus verdeel in'n binêre boom), 2D ruimte kan verdeel word in'n quadtree en 3D ruimte in'n octree.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top