Создание динамического списка
В программе создается структура DList, у которой два поля: целочисленное поле m типа int и указатель р на переменную структуры типа DList, С помощью переменных этой структуры впоследствии реализуется динамический список - аналог целочисленного массива. В поле т записывается целочисленное значение, а указатель р служит для определения адреса следующего элемента динамического списка. Более точно, поле р является указателем на следующий (после текущего) элемент динамического списка.
#includeusing namespace std; //У структуры два поля: целое число и //указатель на переменную структуры: struct DList{ int m; DList *p; }; //Функция получения доступа к элементу динамического списка: void getm(int k,DList *q){ int i; DList *t,*t1; t=q; for(i=1; i < k; i++){ t1=t -> p; t=t1;} cout << "Value is " << t -> m << endl;} int main(){ int i,n,k; DList *q0,*q1,*q2; //Создание начального элемента списка: q0=new DList; q1=q0; //Определение количества элементов списка: cout << "Enter n= "; cin>>n; //Создание динамического списка: for(i=1; i < n; i++){ cout << "Value m= "; cin >> q1->m; q2=new DList; q1 -> p=q2; q1=q2; } cout << "Value m= "; cin >> q1->m; //Последний элемент списка ссылается на начальный элемент: q1 -> p=q0; //Вывод значений целочисленных полей элементов списка: do{ cout << "Value for index k= "; cin >> k; //Для завершения программы нужно ввести 0: if(!k){ for(i=1; i < = n; i++){ q1=q2->p; delete q2; q2=q1; } return 0; } getm(k,q0); }while(true); }