
Informaciyalıq texnologiyaları
.pdf
yamasa shıǵarıp taslanǵanda tóbe kórsetkishiniń mánisi ózgeredi. Jańadan kiritilip atırǵan element yadnıń qálegen bos uyasına jaylastırıladı hám ol sáykes ráwishte baylanısqan dizim kórsetkishlerin ózgertiw jolı menen stekke qosıladı (6.4-súwret). Maǵlıwmatlardı baylanısqan etip ańlatıwda stek sheksiz asıwı múmkin.
Maǵlıwmatlardıń mazmunlı mánisin bahalawsız kiritiw hám shıǵarıp taslaw operaciyaların tezlik penen orınlaw talap etilgen jaǵdaylarda stek dúzilmesi júdá qolay keledi. Tiykarǵı dizimnen óshirilgen qálegen uya bos yad stektiń tóbesine qosıladı. Bos yad stegine kiritilgen sońǵı uya tiykarǵı dizimniń jańa jazıwın jaylastırıw ushın birinshi bolıp isletiledi. Bosaǵan uyalarnıń bos yad stekke kiritiliwin basqaratuǵın algoritm kóbinshe «taslandıq jıynawshı» dep ataladı.
6.4-súwret. Baylanısqan kóriniste stekke elementti kirpitiw
Stekli sistemalar ishine qoyılǵan kishi programmalar hám kóp teksheli
úzilislerdi ámelge asırıwda, translyatorlarda, bunnan tısqarı algoritmleri rekursiv usıl menen eń jaqsı táriyiplengen wazıypalardı sheshiwde keń qollanıladı.
typedef erikli-tur stackÍtemType; struct stackNode
typedef stackNode* ptrType; class stackClass
{
public:
stackClass();
stackClass(const stackClass& S); ~stackClass();
bool StackÍsEmpty() const;
void Push(stackÍtemType NewÍtem, bool& Success); void Pop(bool& success);
void GetStackTop(stackÍtemType& StackTop, bool& Success) const; private:
ptrType TopPtr; };
181
#include ―StackP.h‖
#include <stddef.h> #include <assert.h> struct stackNode
{
stackÍtemType Ítem;
PtrType Next; };
stackClass::stackClass() : TopPtr(NULL)
{
}
stackClass::stackClass(const stackClass& S)
{
if (S.TopPtr == NULL) topPtr = NULL;
else
{
TopPtr = new stackNode; assert(TopPtr !=NULL); TopPtr->Ítem = S.TopPtr->Ítem; ptrType NewPtr = TopPtr
for (ptrtype OrigPtr = S.TopPtr->Next); OrigPtr !=NULL;
prigPtr = OrigPtr->Next)
{
NewPtr->Next = new stackNode; assert(NewPtr->Next != NULL); NewPtr = NewPtr->Next; NewPtr->Ítem = OrigPtr->Ítem; } //cikl aqırı
NewPtr->Next = NULL; } //tamam if
}
stackClass::~stackClass()
{
bool Success; Pop(Success); while(Success) Pop(Success);
}
bool stackClass::StackÍsEmpty() const
{
return bool (TopPtr = NULL);
}
void stackClass::Push(stackÍtemType NewÍtem, bool& Success)
182
{
PtrType NewPtr = new stackNode; Success = bool(NewPtr !=NULL); if (Success)
{
NewPtr->Ítem = NewÍtem;
NewPtr->Next = TopPtr; TopPtr = NewPtr;
} //tamam if
}
void StackClass::Pop(bool& Success)
{
Success = bool(!StackÍsEmpty()); if (Success)
{ //stack bos emes, zagolovkalardı óshiremiz ptrType Temp = TopPtr;
TopPtr = TopPtr->Next;
Temp->Next = NULL; delete Temp;
} //tamam if
}
void stackClass::Pop(stackÍtemType& StackTop, bool& Success)
{
Success = bool(!StackÍsEmpty()) if (Success)
{
StackTop = TopPtr->Ítem; ptrType Temp = TopPtr; TopPtr = TopPtr->Next; Temp->Next = NULL; delete Temp;
}
}
void stackClass::GetStackTop(stackÍtemType& StackÍtemType& StackTop, bool& Success) const
{ Success = bool(!stackÍsEmpty()); if (success) StackTop=TopPtr->Ítem;}
//end
6.3. Náwbet.
Náwbet – bul ózgeriwsheń ólshemdegi sızıqlı sistema. Elementleri náwbetten shıǵarıp taslawǵa bir tárepten – náwbettiń basınan ruxsat beriledi. Elementler kiritiw tek ǵana keri tárepten – náwbettiń aqırınan bolıwı múmkin. Bunday siste-
183
madaǵı maǵlıwmatlar olar kelip tusiwine qarap «birinshi keldi, birinshi ketti» principi boyınsha qayta islenedi. Ádebiyatta náwbet sisteması FÍFO (inglizshe First Ín, First Out) tipindegi dúzilme delinedi. Buǵan svetofordıń ashılıwın kútip turǵan avtomobiller náwbeti kúndelikli mısal esaplanadı. Svetoforǵa birinshi bolıp kelgen avtomobil kesilispeden birinshi bolıp ótip ketedi, yaǵnıy náwbetten shıǵadı. Aqırında kelgen hám náwbettiń aqırında ótip ketiwdi kútip turǵan avtomobil kesilispeden aqırǵı bolıp ótedi.
Náwbet elementlerinen erkin paydalanıw baslanıw hám tamamlaw kórsetkishi boyınsha ámelge asırıladı. Baslanıw kórsetkishi birinshi bolıp shıǵarıp taslanatuǵın yamasa oqılatuǵın náwbet elementin kórsetedi. Tawsılıw kórsetkishi náwbettegi sońǵı jazıwdan keyin keletuǵın yadtıń bos uyasına ornatıladı. Jańa kelgen jazıw, yaǵnıy náwbettiń jańa elementi tek ǵana usı uyaga jaylasadı.
Náwbet sistemasın ámelge asırıw ushın EEM yadında maǵlıwmatlardı da iz- be-iz, hámde baylanısqan etip ańlatıwden paydalanıladı. Náwbetti izbe-iz ańlatıwda stektegi sıyaqlı yad blogı qosımsha etip alınadı, onıń ishinde náwbet artıwı hám kemeyiwi múmkin. Hár bir jańa element kiritiliwi menen tamamlanıw kórsetkishi birlikte ózgeredi. Jańa elementler kiritiw nátiyjesinde náwbet tamamlanıwı kórsetkishi qosımshaǵa alınǵan yad blogınıń aqırına jetse, ol bloktıń basına kóshiriledi. Eger tamamlanıw kórsetkishi baslanıw kórsetkishine jetip alsa, bul yad blogı tolǵanlıǵın ańlatadı.
Elementti shıǵarıp taslawda baslanıw kórsetkishi birlikte ózgeredi. Eger baslanǵısh kórsetkishi tamamlanıw kórsetkishi menen sáykes bolsa, náwbet bos boladı. Maǵlıwmatlardı izbe-iz ańlatıw qosımshaǵa alınǵan yad blogı ishindegi náwbet jaylastırıw sxeması 6.5-súwrette kórsetilgen. Usı jerdiń ózinde náwbet elementlerin kiritiw hám shıǵarıp taslawda kórsetkishler qanday ózgeriwi de kórsetilgen.
Náwbet baylanısqan túrde ańlatıwda yadtı aldınan qosımshaǵa alıw talap etilmeydi. Náwbet payda etiwshi jazıwlar qálegen bos yad uyalarında jaylasadı hám óz-ara kórsetkishler menen baylanısadı (6.6-súwret). Bunday náwbet sheksiz artıwı múmkin. Elementler kiritiw hám shıǵarıp taslawda tek ǵana baslanıw hám tamamlanıw kórsetkishleriniń mánisi hám baylanıs kórsetkishleriniń mánisi ózgeredi.
184

6.5-súwret. Náwbetti izbe-iz kórsetiwde onıń artıwı hám kemeyiwi.
Náwbet dúzilmesi maǵlıwmatlardı qayta islewdiń hár qıylı wazıypaların sheshiwde isletiledi. Máselen, waqıttı bólistiriw menen esaplaw sistemasın modellestiriw náwbet dúzilmesi isletiletuǵın tradiciyalıq wazıypalardan biri esaplanadı. Bunday sistemada kópshilik paydalanıwshılar bir waqıttıń ózinde bir ǵana tiykarǵı yadtan paydalanıp birden-bir oraylıq processor menen isleydi.
Orınlanıwın kútip atırǵan paydalanıwshılardıń programmaları náwbetin quraydı. Náwbetti shólkemlestiriw hám oǵan xızmet kórsetiwdiń islep shıǵılǵan principi kóp tárepten bunday sistema islewiniń paydalılıǵın belgilep beredi.
6.6-súwret. Náwbetti baylanısqan túrde ańlatıw
#include ―Queuep.h‖ // #include <stddef.h> //
//
//
185
struct queueNode
{
queueltemType Ítem; ptrType Next;
}; //
queueClass::queueClass() : BackPtr(NULL) {}
//
queueclass::queueClass(const queueClass& Q)
{
}
queueclass::-queueClass()
{
bool Success;
while (!QueueÍsErapty())
QueueDelete(Success);
}
bool queueclass::QueueÍsEmpty() const
{
return bool(BackPtr == NULL); } //
void queueclass::QueueÍnsert(queueitemType NewÍtem, bool& Success)
{
//
ptrType NewPtr = new queueNode; Success = bool(NewPtr != NULL); // if (Success)
{ //
if (QueuelsEmpty())
//
NewPtr->Next = NewPtr; else
{ //
NewPtr->Next = SackPtr->Next; Backptr->Next = NewPtr;
} // end if
BackPtr = NewPtr; //
}// end if
}// end Queueinsert
void queueClass::QueueDelete(bool& Success )
{
Success = bool(!QueuelsEmpty()); if (Success)
{ //
if (FrontPtr == BackPtr) // BackPtr = HULL; //
else
BackPtr->Next = FrontPtr->Next; Frontptr->Next = NULL; // delete FrontPtr;
186
}// end if
}// end QueueDelete
void queueCass::QueueDelete(queueÍtemType& QueueFront, bool& Success)
{
Success = bool (!QueueÍsEmpty()); if (Success)
{ // queue is not empty; retrieve front ptrType FrontPtr = BackPtr->Next; QueueFront = FrontPtr->Ítem; QueueDelete(Success); //
}
}
void queueClass::GetQueueFront(queueltemType& QueueFront, bools & Success) const
{
Success= bool (!queueÍSEmpty()); if (success)
{
ptrType FrontPtr = BackPtr->Next; QueueFront = FrontPtr->Ítem;
}//
}//
// End
6.4. Keste.
Keste – bul hár bir elementi gilttiń málim mánisi menen súwretlengen hám elementlerinen erkin paydalanıw gilt boyınsha ámelge asırılatuǵın maǵlıwmatlardıń sızıqlı sisteması. Aldıńǵı kórip shıǵılǵan barlıq maǵlıwmatlar sistemalarında dúzilis elementlerinen erkin paydalanıw shegaralanǵan, sebebi tek ǵana saqlaw dúzilmesi indeks yamasa kórsetkish quralında erkin paydalanıw támiyinlengen element oqıtılıw múmkin, bunda erkin paydalanıw processinde jazıwlar maydanlarınıń mánisi hesh qanday analiz qılınbaydı.
Informaciyanı avtomatlastırılǵan jaǵdayda qayta islewdiń kóp wazıypaları anıq belgilerge iye obektler haqqındaǵı jazıwlarǵa múrájaat qılınıwı kerek. Bul jaǵdayda erkin paydalanıw processinde jazıw (ádette, gilt) maydanınıń qanday da bir bólegin analiz qılıw zárúr boladı, onıń tiykarında jazıw oqıw hám onı qayta islewge uzatıwdıń zárúrligi haqqındaǵı mısal sheshiledi. Gilt boyınsha erkin paydalanıw delinetuǵın bunday erkin paydalanıw maǵlıwmatlardıń keste dúzilmesinde ámelge asırıladı.
6.7-súwrette studentler haqqındaǵı informaciyanı óz ishine alǵan maǵlıwmatlar keste formasında kórsetilgen. Kesteniń hár bir qatarı – bul keste sistemasınıń elementi esaplanǵan jazıw, kesteniń baǵanaları – bul jazıwlardıń atributları. Kesteniń qálegen elementinen gilt boyınsha erkin paydalanıw múmkin, ele-
187
mentlerdi kiritiw hám shıǵarıp taslaw da gilttiń mánisine muwapıq ámelge asırılıwı múmkin. Keste jazıwlarınıń gilti (6.7-súwret) reyting dápteri nomerin óz ishine alǵan hár bir jazıwdın birinshi maydanı esaplanadı. Keste dúzilmeleri operaciyalıq sistemalardıń translyatorlarında keń isletiledi. Kestede, máselen, kiriw tiliniń belgileri hám onı ishki ańlatıw kodları, jazıwlardıń identifikatorları hám olardı saqlawdıń tiyisli mánzilleri hám basqalar saqlanadı.
Reyting |
Familiyası, atı, |
Ortasha |
|
|
dáptershesi |
Jámiyetlik jumısılar |
|||
atasınıń atı |
ball |
|||
nomeri |
|
|||
|
|
|
||
123265 |
Abdullaev Q.A. |
4, 30 |
Kásiplik awham shólkemlestiriwshisi |
|
123266 |
Abidov I. N. |
4, 45 |
Topar jetekshisi |
|
…………. |
…………………. |
…….. |
……………. |
|
124565 |
Yaxshiev A. R. |
4,95 |
Studentler komissiyası baslıǵı |
6.7-súwret.Maǵlıwmatlardı kestede ańlatıw mısalı
Kestelerdi kompyuter yadında saqlaw ushın maǵlıwmatlardı izbe-iz hám baylanısqan jaǵdayda ańlatıwdan paydalanıladı.
Izbe-iz ańlatıwda keste izbe-iz dizim kórinisinde saqlanadı. Kesteniń jazıwları aldınan qosımsha etip alınǵan yad blogında biizbe-iz jaylasadı. Bunday kestelerdi dúziw hám toltırıw ańsat, jańa jazıwlardı kesteniń aqırına minimal waqıt ishinde qosıw ańsat. Biraq bunday kestelerde izlew uzaq dawam etedi, sebebi izbe-iz ráwishte kesteniń birinshisinen baslap barlıq jazıwları kórip shıǵıladı hám olardıń gilt maydanları mánisi analiz etiledi. Kórip shıǵıw kerekli jazıw tabılmaǵansha yamasa pútkil kesteni kórip shıǵıwdan soń kerekli jazıwdıń joqlıǵı signalı islep shıǵılmaǵanınsha ámelge asırıladı.
Ádette, keste jazıwları qandayda bir princip boyınsha (máselen, gilt bóleginiń artıp barıwı boyınsha yamasa jazıwlar, xabarlarınıń sanı boyınsha) tártipke salınadı hám tártipke salınǵan izbe-iz dizim kóriniste saqlanadı. Bul jaǵdayda izlewdiń arnawlı usılların isletiw esabına sezilerli ráwishte tezlestiriliwi múmkin. Biraq tártipke salınǵan izbe-iz dizimdi júritiw qıyınlasadı hám ol menen bir qatar qosımsha proceduralar birge keledi. Sonday qılıp, máselen, izbe-iz tártipke salınǵan dizimge jańa keste jazıwın kiritiw ushın jańa jazıw óz gilti mánisine muwapıq dizimde iyelewi kerek bolǵan orındı anıqlaw zárúr. Yadtıń tiyisli uyası bosatılıw kerek, onıń ushın barlıq jazıwlar bir uyaǵa kóshiriledi, yaǵnıy massivtiń bir bólegi qayta jazıladı.
Mısal ushın, jazıwlar kestesi 6.8 a-súwrette kórsetilgendey tártipke salınǵan izbe-iz dizim kóriniste saqlanatuǵın bolsın. Jazıwlar gilt sózleriniń alfaviti boyınsha tártipke salınǵan. Jazıw D nı dizimge kiritiw ushın onı gilttiń mánisine muwapıq fizikalıq dárejede jazıw S dan keyin uya 104 ge jaylastırıw zárúr. Onıń ushın barlıq keyingi jazıwlardı bir uyaǵa úlken mánziller tárepke jıljıtıw kerek (6.8 b-súwret). Sonday qılıp, informaciya massivin jańa jazıw keliwi menen hár qashan qayta jazıw zárúr.
Kesteler tártipke salınǵan izbe-iz dizim formasında saqlawdan kesteniń aqırındaǵı ólshemi aldınan málim bolǵan, maǵlıwmatlardı qayta islew wazıypaları
188

bolsa maǵlıwmatlarǵa tez-tez xabarlawdı (tez-tez izlewi), biraqta maǵlıwmatlardı júdá kem óshiriw hám qosıwdı talap etetuǵın jaǵdaylarda paydalanıw júdá qolay.
Tártipke salınǵan keste óz-ara baylansqan dizim formasında saqlanıwı múmkin. Bunda dinamikalıq ráwishte ózgertirilip barılatuǵın kesteni júritiw qayta jazıw proceduraların orınlawdı talap etpeydi. Biraqta bunday kestede jazıwlardı kórsetkish tárepinen belgilengen tártipte izbe-iz kórip shıǵıp izlew múmkin.
6.8-súwret. Kesteni izbe-iz ańlatıw
a) baslanǵısh keste , b) kestege jańa jazıwdı kiritiw
Kestelerdi saqlaw ushın kóbinshe maǵlıwmatlardı ańlatıwdıń aralas usılınan paydalanıladı. Bunda informaciya massivin jaratıwdıń dáslepki basqıshında hár bir kesteniń jazıwları zapastaǵı yad bloklarında izbe-iz jaylastırıladı. Kesteler ósip barǵanı sayın bloklar da tolıp baradı. Ol yamasa bul blok pútinley tolıp bolǵanda, bul keste ushın jańa yad blogı ajıratıladı, ol kórsetkish arqalı aldıńǵı tolǵan blok menen baylanısadı. 6.9-súwrette baylanısqan yad bloklarında saqlanıp atırǵan eki sáykes ráwishte ózgerip baratuǵın A hám V kestelerin yadda jaylastırıw kórsetilgen. A kesteniń yad blogı tolǵanda soń yadtıń bos ornında A keste ushın birinshi blok penen kórsetkish arqalı baylanısqan jańa blok ajıratıladı. V keste de ósip barǵanı sayın ol ushın da jańa yad blogı ajıratıladı. Saqlawdıń bunday strukturası elementleri sanı aldınan belgisiz bolǵan keste sistemaların yadta jaylastırıw ushın qolay.
189

6.9-súwret. Baylanısqan yad bloklarında eki sáykes ráwishte ózgeretuǵın kestelerdi jaylastırıw
Kestelerdi saqlaw ushın kóbinshe hár bir kesteden tuwrıdan-tuwrı paydalanıwdı támiyinleytuǵın yadta jaylastırıw usılınan paydalanıladı.
Eger kesteniń barlıq N jazıwları mánisi hár qıylısha bolǵan Ki giltine iye hám hár qanday 0 < i < N f(Ki) ushın 0 den i geshe pútin mánisti qabıl etetuǵın f(Ki) funkciya tabılǵan bolsa, f(Ki) bólimi Ki giltli jazıw jaylasqan yad uyasınıń mánzili sıpatında qaraw múmkin. f(Ki) funkciya ózgertiw funkciyası yamasa basqasha qılıp aytqanda jaylastırıw funkciyası delinedi. Hár qanday jazıwdan paydalanıw ushın gilttiń mánisi boyınsha usı jazıw saqlanıp atırǵan mánzil tuwrıdan-tuwrı esaplap shıǵıw jolı menen tabıladı. Bunday kestelerde izlew waqtı júdá kem bolıp, waqıt tiykarınan f(Ki) nı esaplawǵa sarıplanadı.
Ózgertiw funkciyaların, generaciyalanıwshı ózgeshe mánzillerdi tańlaw júdá qıyın wazıypa esaplanadı hám arnawlı tekseriw talap etedi.
Kesteli dúzilis bar obektler hám olardıń xarakteristikaları ortasındaǵı kóplegen qatnasıqlar sáwleleniwiniń eń keń tarqalǵan hám ádettegi, qolay kórinisi. Maǵlıwmatlardı hám olardıń strukturalıq qatnasıqları keste formasında ańlatıw maǵlıwmatlar massivlerin shólkemlestiriw ushın relyacion algebra usıllarınan paydalanıw imkaniyatın berdi, bul bolsa maǵlıwmatlardı qayta islewdiń relyacion sisteması payda bolıwına alıp keldi.
190