Записать в список N действительных чисел. Перенести 3-й элемент в начало списка. (Простые списки. Задача №1)(см. "Сборник задач для начинающего программиста") Алгоритм: #include<stdio.h> #include<conio.h> int N, N1, N2; double b; struct Titem { //объявление структуры double a; Titem *next; } *start, *last, *p; void add_item(double v) { //функция для заполнения списка Titem *p; if (start==NULL){ start=new Titem; start->a= v; start->next= NULL; last=start; } else { p=new Titem; p->a= v; p->next= NULL; last->next=p; last=p; } } void exch(int n){ //функция для перенесения n-ого элемента в начало списка Titem *p2, *p1; int w=n; p=start; while (n-1>0){ p=p->next; n=n-1; } p1=p->next; p2=start; while (w-2>0){ p2=p2->next; w--; } p2->next=p1; p->next=start; start=p; } int main(){ printf("vvedite kolichestvo elementov\n") ; //введение пользователем количества элементов в списке scanf("%d", &N); N2=N1=N; printf("vvedite chisla\n") ; //заполнение массива с клавиатуры while (N>0) { scanf("%lf", &b); add_item(b); N=N-1; } p=start; printf("ishodnyj spisok\n") ; //вывод исходного списка при помощи цикда while (N2>0) { printf("%lf ", p->a); p=p->next; N2-- ; } printf("\n") ; exch(3); printf("rezul'tiruyushijj spisok\n") ;//вывод результирующего списка при помощи цикда while(N1>0){ printf("%lf ", p->a); p=p->next; N1--; } printf("\n") ; getch(); return 0; }
Ключевые слова:
список, перенос элемента
|
|||||||