Íèæå ïðèâåäåíû àëãîðèòì â âèäå áëîê ñõåìû è ñàìà ôóíêöèÿ.
#include<stdio.h> /*ïîäêëþ÷åíèå ôàéëà stdio.h*/
#include<alloc.h> /* ïîäêëþ÷åíèå ôàéëà alloc.h */
#include<process.h> /* ïîäêëþ÷åíèå ôàéëà sprocess.h */
struct spis /*îáúÿâëåíèå ñòðóêòóðû ñïèñêà, êàæäûé ýëåìåíò */
{ int p1,p2; /*êîòîðîãî èìååò äâà ïîëÿ òèïà öåëîå, (ð1-íîìåð*/
struct spis *next;} rec1;/*òàáëèöû, ð2-íîìåð â òàáëèöå) è ïîëå-óêàçàòåëü*/
/*íà ñëåäóþùèé ýëåìåíò ñïèñêà*/
struct spspis /* îáúÿâëåíèå ñòðóêòóðû ñïèñêà ñïèñêîâ, êàæäûé */
{int p1,p2; /*ýëåìåíò êîòîðîãî èìååò äâà ïîëÿ òèïà öåëîå,*/
ð1-íîìåð òàáëèöû,ð2- íîìåð â òàáëèöå*/
struct spspis *link; /* óêàçàòåëü íà ñëåäóþùèé ýëåìåíò ñïèñêà ñïèñêîâ*/
struct spis *next;} rec2;/*óêàçàòåëü íà ñòðóêòóðó ñïèñîê*/
struct spis *f,*q,*r; /* óêàçàòåëü íà ñòðóêòóðó ñïèñîê */
struct spspis *t1,*t; /* óêàçàòåëü íà ñòðóêòóðó ñïèñîê ñïèñêîâ*/
struct spspis *tochka(p) /*îáúÿâëåíèå ôóíêöèè, âîçðàùàþùåé óêàçàòåëü íà ñïèñîê ñïèñêîâ*/
struct spis *p; /*àðãóìåíòîì ôóíêöèè ÿâëÿåòñÿ óêàçàòåëü íà ñïèñîê*/
{
f=p; /*ïðñâàèâàíèå ðàáð÷åé ïåðåìåííîé çíà÷åíèÿ àðãóìåíòà ôóíêöèè*/
t=malloc(sizeof( rec2));/*ñîçäàíèå 1-îãî ýëåìåíòà ñïèñêà ñïèñêîâ*/
t1=t; /* ïðñâàèâàíèå ðàáî÷åé ïåðåìåííîé óêàçàòåëÿ íà ñïèñîê ñïèñêîâ*/
while(f!=NULL) /*òåëî äàííîãî îïåðàòîðà áóäåò âûïîëíÿòüñÿ äî òåõ ïîð, ïîêà íå äîñòîãíåì êîíöà ñïèñêà ëåêñåì*/
{ t1->p1=f->p1;/*ïðèñâàèâàíèå çíà÷åíèé ïîëÿì ýëåìåíòà ñïèñêà ñïèñêîâ*/
t1->p2=f->p2;
f=f->next;
if (f!=NULL)
{ t1->next=malloc(sizeof(rec1));/*ñîçäàíèå 1-îãî ýëåìåíòà ñïèñêà â ñïèñêå ñïèñêîâ*/
q=t1->next;/* ïðèñâàèâàíèå ðàáî÷åé ïåðåìåííîé óêàçàòåëÿ íà ýëåìåíò ñïèñêà*/
do /*ñîçäàíèå ñàìîãî ñïèñêà ëåêñåì â ñïèñêå ñïèñêîâ*/
q->p1=f->p1;/*ïðèñâàèâàíèå çíà÷åíèé ïîëÿì ýëåìåíòà ñïèñêà*/
q->p2=f->p2;
if ((q->p1!=1) && (q->p2!=1))/*åñëè äàííàÿ ëåêñåìà íå ÿâëÿåòñÿ òî÷êîé*/
{ q->next=malloc(sizeof(rec1));//*òî ñîçäàåì íîâûé ýëåìåíò ñïèñêà */
q=q->next;
}
else { t1->link=malloc(sizeof(rec2));/*èíà÷å, ñîçäàåì íîâûé ýëåìåíò ñïèñêà ñïèñêîâ*/
t1=t1->link;
};
while(((q->p1!=1) && (q->p2!=1)) || (f!=NULL)) ;/*òåëî äàííîãî îïåðàòîðà âûïîëäíÿåòñÿ äî òåõ ïîð,ïîêà ëèáî íå áóäåò ïðî÷èòàíà òî÷êà, ëèáî íå áóäåò äîñòèãíóò êîíåö ñïèñêà ëåêñåì,íà êîòîðûé óêàçûâàåò àðãóìåíò ôóíêöèè*/
Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9