| |
|
|
p.specht
| qui Datenstruktur DEQue (Double Ended Queue, Warteschlange avec deux Enden) wird pour manche Algorithmen gebraucht, etwa qui Melkman-Hüllensuche. Pour sur 400 Elemente dans qui Schlange wird qui ici implementierte variante allerdings lente. mais immerhin peux on avec cela aussi reale Warteschlangensysteme, etwa à Supermarktkassen, sur Effektivität untersuchen.
' DEQ.inc
Proc DEQHelp
font 2:Cls:Imprimer:"\n\n============================================================"
Imprimer " D E Q H e l p"
Imprimer "============================================================"
Imprimer "\n CLEAR q&[] ' natives XProfan ":Imprimer " sz& = SizeOf(q&[]) ' sz=5 bedeutet: 0,1,2,3,4 "
Imprimer " SetSize q&[],sizeof(q&[])+1 ' erweitert Array um 1 Stelle "
Imprimer " MakeIndexDEQ(q&[],n&) ":Imprimer " MakeRevertIndexDEQ(q&[],n&) "
Imprimer " MakeConstDEQ(q&[],n&,wert&) ":Imprimer "\n ShowDEQ q&[],nw& ' Temporary NumWidth "
Imprimer "\n Wert&= PopBtm(q&[]) ' -999999999 = OutOfRange Error "
Imprimer " Wert&= PopTop(q&[]) ' or -999999999 ":Imprimer " PutTop Wert&,q&[] "
Imprimer " PutBtm Wert&,q&[] ":Imprimer "\n Wert&= CopyBtm(q&[]) "
Imprimer " Wert&= CopyTop(q&[]) ' -999999999 ":Imprimer " Wert&= CopyFromDEQ(q&[],n&) "
Imprimer "\n LogVgl&=CmpInDEQ(q&[],n&,m&)' n=Pos1,m=Pos2: <1,'=0',>-1 "
Imprimer "\n NisM&= SwapInDEQ(q&[],n&,m&)' (N=M)=1, -999999999 "
Imprimer " Wert&= DelFromDEQ(q&[],n&) ":Imprimer " DEQHelp ' cette Text ausgeben":waitinput :endproc
:proc MakeIndexDEQ :parameters q&[],n&:SetSize q&[],n&:q&[]=&index+1:endproc
:proc MakeRevertIndexDEQ :parameters q&[],n&:SetSize q&[],n&:q&[]=n&-&index:endproc
:proc MakeConstDEQ :parameters q&[],n&,wert&:SetSize q&[],n&:q&[]=Wert&:endproc
:Proc PopBtm :parameters q&[]:var sz&=sizeof(q&[]):si sz&>0:var wert&=q&[0]
q&[]=q&[&index+(&index<(sz&-1))]:setsize q&[],sizeof(q&[])-(sz&>0):return wert&
d'autre :return int(-999999999):endif :endproc
:proc PopTop :parameters q&[]:declare wert&:var sz&=sizeof(q&[]):si sz&>0:wert&=q&[sz&-1]
d'autre :wert&=int(-999999999):endif :setsize q&[],sz&-(sz&>0):return wert&:endproc
:Proc PutTop :parameters Wert&,q&[]:var sz&=sizeof(q&[]):inc sz&:setsize q&[],sz&:q&[sz&-1]=Wert&:endproc
:Proc PutBtm :parameters Wert&,q&[]:declare tmp&[]:var sz&=sizeof(q&[]):inc sz&
setsize q&[],sz&:tmp&[]=q&[]:q&[]=tmp&[&index-(&index>0)]:clear tmp&[]:q&[0]=Wert&:endproc
:Proc CopyBtm :parameters q&[]:var sz&=sizeof(q&[]):si sz&>0:return q&[0]
d'autre :return int(-999999999):endif :endproc
:proc CopyTop :parameters q&[]:declare wert&:var sz&=sizeof(q&[])
si sz&>0:wert&=q&[sz&-1]:d'autre :wert&=int(-999999999):endif :return wert&:endproc
:proc ShowDEQ :parameters q&[],nw&:var tmp&=get("numwidth"):set("numwidth",nw&)
var sz&=sizeof(q&[]):imprimer tab(2);"n=";sz&;": ";:whileloop 0,sz&-1:imprimer q&[&Boucle],
endwhile :imprimer:set("numwidth",tmp&):endproc
:proc CopyFromDEQ :parameters q&[],n&:declare wert&:var sz&=sizeof(q&[])
si (sz&>0) and (n&>=0) and (n&<sz&):wert&=q&[n&]:d'autre :wert&=int(-999999999):endif :return wert&:endproc
:Proc CmpInDEQ :parameters q&[],n&,m&
var sz&=sizeof(q&[]):si (sz&>0) and (n&>=0) and (n&<sz&) and (m&>=0) and (m&<sz&)
return int((q&[n&]<q&[m&])-(q&[n&]>q&[m&])):d'autre :return int(-999999999):endif :ENDPROC
:Proc SwapInDEQ :parameters q&[],n&,m&'Swaps two elements dans Queue
var sz&=sizeof(q&[]):si (sz&>0) and (n&>=0) and (n&<sz&) and (m&>=0) and (m&<sz&):var tmp&=q&[n&]
q&[n&]=q&[m&]:q&[m&]=tmp&:return int(n&<>m&):d'autre :return int(-999999999):endif :endproc
:proc DelFromDEQ :parameters q&[],n&:var sz&=sizeof(q&[]) :declare wert&
si (sz&>0) and (n&>0) and (n&<sz&):wert&=q&[n&]:q&[]=q&[&index+(&index>=n&)*(&index<(sz&-1))]
dec sz&:setsize q&[],sz&:d'autre :wert&=int(-999999999):endif :return wert&
endproc
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 13.08.2014 ▲ |
|
|
|
|
p.specht
| et comment pouvoir on cela là dessus eh bien trop einem Codeabschnitt sans Smilies? |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 14.08.2014 ▲ |
|
|
|
|
Paul Glatz |
|
|
| |
|
|
|
p.specht
| |
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 14.08.2014 ▲ |
|
|
|
|
| Huhu,
ist cela Thema besser ici [...] aufgehoben?
|
|
|
| |
|
|
|
p.specht
| sous welchem Stichwort serait cela quelqu'un là chercher, si il de Deque comme Begriff nie est hat? et wieso käme il ensuite sur qui concept, Schirm 17 ou bien so anzuklicken? mais dans Kopie spricht naturellement nix dagegen. Gruss |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 19.08.2014 ▲ |
|
|
|
|
| cela könntest Du meiner attitude pour mais aussi entier anders voyons.
si es sous Source liegt et quelqu'un avec qui Suchfunktion pour irgend einem cette Worte cherchez:
Include DeQue Double-ended Queue doppelseitige Warteschlange
ensuite wird là stehen, dass es un Thema sous "Quelltexte" en supplément gibt et qui Suchende wird avec cela erkennen, dass pour ihn un Voir le texte source-Fundstück bereitliegt.
Wiederum sous "XPSE" ist es après moins sinnvoll einsortiert aussi weil es sich pas um une Voir le texte source speziell pour XPSE handelt.
et zudem: Dein Profil [...] wird avec cela aussi korrekt ausgefüllt car là gibt es qui Rubrik "Quelltexte/ Codesnippets" et là steht maintenant oui chez Dir une 0 (zéro) quoi oui so ensuite pas stimmt. |
|
|
| |
|
|
|
p.specht
| alors bitteschön... wohin Du droite la hâte la hâte Du naturellement droite... Gebe mais trop considérer: cela Ding ist pour qui Praxis encore pas leistungsfähig genug: à cause de qui versuchsweise gewählten 'physischen Speicherverschiebung' ist es (z.B. pour den Melkman-Algorithmus) malheureusement viel trop lente chez größeren Queue-Längen! je hatte oui eigentlich gehofft, qui Microsoft cela de toute façon irdenwie déjà comme API realisiert hat, allerdings fand je bisher seulement quoi dans Dot.Net et Visual C#, et là kenne je mich eh bien wirklich 'Nada' aus. Werde es bientôt la fois avec Link-Listen versuchen... Gruss |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 21.08.2014 ▲ |
|
|
|
|
| Tricolore la fois déménagé cela Thema...
la fois zum Thema... [...] cela bringe je meinem Saugroboter chez avec cela il im Programme-X pas komplett verstumpft? |
|
|
| |
|
|
|
p.specht
| merci. allez wohl plutôt um Vorarbeiten trop einer Verschnittoptimierung, ou bien um Oberfächenspannungsberechnung (comment verhalten sich geschäumte Materialien) ou bien um Voraussetzungen pour Voronoi- ou bien Delauney-Algorithmen (Funkzellen-Optimierung) ou bien um Erzeugung de neuen pas-Standard-Elementen pour Finite-Elemente-Methoden (FEM). |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 21.08.2014 ▲ |
|
|
|
|
| je crois zwar es trop comprendre mais mon sentiment sagt mir aussi le moi mich là assez irren darf. |
|
|
| |
|
|
|
p.specht
| Du darst ! P.S.: Andrew's Monotone Chain Algorithm venez avec einem einfachen Stack aus. Sozusagen qui halbe Melkman, et c'est pourquoi leichter trop comprendre... |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 21.08.2014 ▲ |
|
|
|