Информатика и технология программирования


Односвязный список в файле - часть 2


fprev=fcur, prev=cur, fcur=cur.fnext)
{ // Переход к следующему с запоминанием


fseek(fd,fcur,SEEK_SET); // предыдущего элемента и его адреса


fread(&#38cur,sizeof(flist),1,fd);
if (cur.val &#62 vv) break; // Поиск места - текущий &#62 нового


}


lnew.val = vv;
lnew.fnext=fcur;
fseek(fd,0L,SEEK_END); // Заполнение нового элемента списка


fnew=ftell(fd); // Запись в файл и получение адреса


fwrite(&#38lnew,sizeof(flist),1,fd);


if (fprev==FNULL) // Включение первым -


{ // обновить заголовок


fseek(fd,0L,SEEK_SET);
fwrite(&#38fnew,sizeof(long),1,fd);
}
else // Включение после предыдущего -


{
prev.fnext=fnew; // обновить предыдущий


fseek(fd,fprev,SEEK_SET);
fwrite(&#38prev,sizeof(flist),1,fd);
}}




Начало  Назад  Вперед



Книжный магазин