Підтримка
www.wikidata.uk-ua.nina.az
U komp yuternij nauci spisok abo poslidovnist abstraktnij tip danih yakij yavlyaye soboyu zlichenne chislo vporyadkovanih de odne i tezh same znachennya mozhe zustrichatisya bilshe odnogo razu Ekzemplyar spisku ce komp yuterne podannya matematichnogo ponyattya skinchennoyi poslidovnosti potencijno neskinchennij analog spisku ce potik Spiski ye osnovnim prikladom kontejneriv oskilki voni mistyat inshi znachennya Yaksho zh znachennya zustrichayetsya kilka raziv u kozhnomu vipadku vono rozglyadayetsya yak okremij element Struktura odnobichno zv yazanogo spisku kotrij realizuye spisok z 3 h cilih elementiv Nazva spisok takozh vikoristovuyetsya dlya kilkoh konkretnih struktur danih yaki mozhna vikoristati dlya realizaciyi abstraktnih spiskiv osoblivo zv yazanih spiskiv Bagato mov programuvannya zabezpechuyut pidtrimku tipiv danih spisku i mayut specialnij sintaksis i semantiku dlya spiskiv i perelik operacij Spisok chasto mozhna pobuduvati shlyahom napisannya poslidovnosti elementiv rozdilenih komami krapkami z komoyu ta abo propuskami v mezhah pari rozdilnikiv takih yak krugli duzhki kvadratni duzhki figurni duzhki abo kutovi duzhki lt gt V ob yektno oriyentovanih movah programuvannya spiski zazvichaj podayutsya yak ekzemplyari pidklasiv zagalnogo klasu spisku i prohodyatsya cherez okremi iteratori Tip danih spisok chasto realizuyetsya z vikoristannyam strukturi danih masiv abo zv yazanih spiskiv deyakogo vidu ale i inshi strukturi danih mozhut buti bilsh vidpovidnimi dlya deyakih zastosuvan U deyakih kontekstah napriklad u programuvanni na Lisp termin spisok mozhe stosuvatisya konkretno zv yazanogo spisku a ne masivu U teoriyi tipiv i funkcijnomu programuvanni abstraktni spiski zazvichaj en viznachayutsya dvoma operaciyami NIL sho daye porozhnij spisok i CONS yaka dodaye element u pochatok spisku OperaciyiRealizaciya strukturi danih spisku mozhe nadati deyaki z takih operacij konstruktor dlya stvorennya porozhnogo spisku operaciya dlya perevirki chi spisok porozhnij chi ni operaciya dlya dodavannya ob yekta na pochatok spisku operaciya dlya dodavannya ob yekta v spisok operaciya dlya viznachennya pershogo komponenta abo golovi spisku operaciya dlya posilannya na spisok sho skladayetsya z usih komponentiv spisku za vinyatkom jogo pershogo elementa golovi ce nazivayetsya hvist spisku V inozemnij terminologiyi vikoristovuyutsya taki poznachennya golova spisku angl head hvist angl tail RealizaciyiSpiski zazvichaj realizuyutsya abo u viglyadi zv yazanih spiskiv abo odnobichno abo dvobichno abo u viglyadi masiviv yak pravilo zminnoyi dovzhini abo dinamichnih masiviv Standartnij sposib realizaciyi spiskiv sho pohodit z movi programuvannya Lisp peredbachaye sho kozhen element spisku maye znachennya i vkazivnik yakij vkazuye misce roztashuvannya nastupnogo elementa spisku Ce prizvodit abo do zv yazanogo spisku abo do dereva zalezhno vid togo chi maye spisok vkladeni pidspiski Deyaki stari realizaciyi Lisp taki yak realizaciya Lisp Symbolics 3600 takozh pidtrimuyut stisli spiski z vikoristannyam CDR koduvannya yaki mali specialne vnutrishnye podannya nevidime dlya koristuvacha Spiskami mozhna manipulyuvati za dopomogoyu iteraciyi abo rekursiyi Pershe chasto ye krashim v imperativnih movah programuvannya todi yak ostannye ye normoyu u funkcijnih movah Spiski mozhut buti realizovani u viglyadi zbalansovanih dvijkovih derev poshuku kotri mistyat pari indeks znachennya zabezpechuyuchi dostup do bud yakogo elementa za odnakovij chas napriklad yak krajovi tak i vnutrishni vuzli zberigayut indeks najpravishogo nashadka sho vikoristovuyetsya dlya napravlennya poshuku zatrachayuchi chas logarifmichnij vid rozmiru spisku ale poki spisok ne duzhe zminyuyetsya ce takozh zabezpechuye ilyuziyu vipadkovogo dostupu i robit mozhlivim operaciyi perestanovki prefiksnih i dodavannya takozh za logarifmichnij chas Pidtrimka u movah programuvannyaDeyaki movi ne proponuyut strukturu danih spisok ale pidtrimuyut vikoristannya asociativnih masiviv abo svogo rodu tablic shob emulyuvati spiski Napriklad Lua nadaye tablici Hocha Lua zberigaye spiski yaki mayut chislovi indeksi yak masivi voni yak i ranishe vidobrazhayutsya u viglyadi slovnikiv U Lisp spiski ye osnovnim tipom danih i mozhut mistiti yak programnij kod tak i dani V bilshosti dialektiv spisok pershih troh prostih chisel mozhna zapisati u viglyadi list 2 3 5 U deyakih dialektah Lisp zokrema v Scheme spisok ye naborom par sho skladayutsya zi znachennya i vkazivnika na nastupnu paru abo nulovogo znachennya sho realizuye odnobichno zv yazanij spisok VikoristannyaYak viplivaye z nazvi spiski mozhna vikoristati dlya zberigannya spisku elementiv Odnak na vidminu vid tradicijnih masiviv spiski mozhut rozshiryuvatisya i stiskatisya i zberigayutsya v pam yati dinamichno V obchislyuvalnij tehnici spiski legshe realizuvati nizh mnozhini Skinchennu mnozhinu v matematichnomu sensi mozhna realizuvati u viglyadi spisku z dodatkovimi obmezhennyami a same elementi sho povtoryuyutsya zaboroneni i poryadok ne maye znachennya Sortuvannya spisku priskoryuye proces viznachennya nayavnosti ob yekta u mnozhini ale pidtrimannya poryadku vimagaye bilshe chasu dlya dodannya novogo zapisu do spisku Bilsh efektivno mnozhini realizuyutsya z vikoristannyam zbalansovanih dvijkovih derev poshuku abo gesh tablic a ne spiskom Spiski takozh ye osnovoyu dlya inshih abstraktnih tipiv danih zokrema cherg stekiv i yih variacij Abstraktne viznachennyaAbstraktnij spisok tipu L z elementami deyakogo tipu E monomorfnij spisok viznachayetsya takimi funkciyami nil L cons E L L first L E rest L L z aksiomami first cons e l e rest cons e l l dlya bud yakogo elementa e i bud yakogo spisku L Mayetsya na uvazi sho cons e l l cons e l e cons e1 l1 cons e2 l2 if e1 e2 and l1 l2 Zauvazhimo sho first nil i rest nil ne viznacheni Ci aksiomi ekvivalentni aksiomam tipu danih abstraktnogo steku V teoriyi tipiv navedene vishe viznachennya prostishe rozglyadayetsya yak viznachennya en v terminah konstruktoriv nil i cons V algebrayichnih terminah ce mozhna podati yak peretvorennya 1 E L L first ta rest potim otrimuyutsya shlyahom zistavlennya zi zrazkom u konstruktori cons i okremo obroblyayetsya vipadok nil Spisok monad Tip spisku utvoryuye monadu z takimi funkciyami vikoristano E a ne L dlya vidobrazhennya monomorfnih spiskiv z elementami tipu E return A A a cons a nil displaystyle text return colon A to A a mapsto text cons a text nil bind A A B B l f nil if l nil append f a bind l f if l cons a l displaystyle text bind colon A to A to B to B l mapsto f mapsto begin cases text nil amp text if l text nil text append f a text bind l f amp text if l text cons a l end cases de append viznachayetsya tak append A A A l 1 l 2 l 2 if l 1 nil cons a append l 1 l 2 if l 1 cons a l 1 displaystyle text append colon A to A to A l 1 mapsto l 2 mapsto begin cases l 2 amp text if l 1 text nil text cons a text append l 1 l 2 amp text if l 1 text cons a l 1 end cases Yak alternativa monadu mozhna viznachiti v terminah operacij return fmap ta join fmap A B A B f l nil if l nil cons f a fmap f l if l cons a l displaystyle text fmap colon A to B to A to B f mapsto l mapsto begin cases text nil amp text if l text nil text cons f a text fmap f l amp text if l text cons a l end cases join A A l nil if l nil append a join l if l cons a l displaystyle text join colon A to A l mapsto begin cases text nil amp text if l text nil text append a text join l amp text if l text cons a l end cases Zvernit uvagu sho fmap join append ta bind chitko viznacheni oskilki voni zastosovuyutsya do bilsh i bilsh glibokih argumentiv za kozhnogo rekursivnogo vikliku Tip spisku ye aditivnoyu monadoyu z nil yak monadichnim nulem i append yak monadichnoyu sumoyu Spiski utvoryuyut monoyid vidnosno operaciyi dodavannya Odinichnij element monoyida ye porozhnij spisok nil Naspravdi ce en nad mnozhinoyu elementiv spisku PrimitkiReingold Edward Nievergelt Jurg Narsingh Deo 1977 Combinatorial Algorithms Theory and Practice Englewood Cliffs New Jersey Prentice Hall s 38 41 ISBN 0 13 152447 X Barnett Granville Del tonga Luca 2008 PDF mta ca Arhiv originalu PDF za 12 listopada 2014 Procitovano 12 listopada 2014 Lerusalimschy Roberto December 2003 vid First Lua org ISBN 8590379817 Arhiv originalu za 9 zhovtnya 2014 Procitovano 12 listopada 2014 Steele Guy 1990 Common Lisp vid Second Digital Press s 29 31 ISBN 1 55558 041 6 DzherelaTomas Kormen Charlz Lejzerson Ronald Rivest Kliford Stajn 2009 1990 10 2 Zv yazani spiski Vstup do algoritmiv vid 3rd MIT Press i McGraw Hill ISBN 0 262 03384 4
Топ