Лекция 4. Нелинейные структуры данных
Введение индикатора (флажка F) действительно произошедших во внутреннем цикле обменов уменьшает число лишних проходов в случаях с частично отсортированными массивами на входе. Перед каждым проходом по внутреннему циклу флажок сбрасывается в 0, а после действительно произошедшего обмена устанавливается в 1. Если после выхода из внутреннего цикла флажок равен 0, то обменов не было, то есть массив отсортирован и можно досрочно выйти из программы сортировки.
FILE *pFile;
const int N=3;
int A[N];
int i, F, C;
pFile = fopen ("myfile.txt","rt");
for (i=0;i<=N-1;i++)
fscanf(pFile,"%d \n",&A[i]);
fclose (pFile);
F=1;
while (F!=0)
{
F=0;
for (i=0;i<=N-2;i++)
{
if (A[i]>A[i+1]) {F=1; C=A[i]; A[i]=A[i+1]; A[i+1]=C; }
}
}
pFile = fopen ("myfile1.txt","w");
for (i=0;i<=N-1;i++) fprintf(pFile,"%d \n",A[i]);
fclose (pFile);
}
Организация простейшего списка
#include <stdio.h>
struct TChain{
int val;
TChain* Next; };
int main ()
{
FILE *pFile;
int ik;
TChain *Head, *NewChain, *OldChain;
Head=new TChain; Head->Next=NULL; OldChain=Head;
pFile = fopen ("myfile.txt","rt");
while(!feof(pFile))
{ NewChain=new TChain;
|
|
fscanf(pFile,"%d \n",&ik); NewChain->val=ik;
NewChain->Next=NULL;
OldChain->Next=NewChain;
OldChain=NewChain;
}
fclose (pFile);
pFile = fopen ("myfile1.txt","w");
OldChain=Head;
do
{
NewChain=OldChain->Next;
ik=NewChain->val;
fprintf(pFile,"%d \n",ik);
delete OldChain;
OldChain=NewChain;
} while (NewChain->Next!=NULL);
fclose (pFile);
return 0;
}
Мно́жество — одно из ключевых понятий математики, в частности, теории множеств и логики. Понятие множества обычно принимается за одно из исходных (аксиоматических) понятий, то есть несводимое к другим понятиям, а значит, и не имеющее определения; для его объяснения используются описательные формулировки, характеризующие множество как совокупность различных элементов, мыслимую как единое целое