Скачать презентацию Односвязные списки include fstream h include conio h struct spisok Скачать презентацию Односвязные списки include fstream h include conio h struct spisok

Односвязные списки.ppt

  • Количество слайдов: 9

Односвязные списки #include<fstream. h> #include<conio. h> struct spisok { int data; spisok *next; }; Односвязные списки #include #include struct spisok { int data; spisok *next; }; spisok *p, *q, *p 2; //p 2 - вспомогатедьный указатель int kol = 0; //Счетчик

void pop(int x) //Создание списка { p = new spisok; p -> next = void pop(int x) //Создание списка { p = new spisok; p -> next = q; p -> data = x; q = p; kol ++; }

void view() //Просмотр списка { while(p != NULL) { cout << p -> data void view() //Просмотр списка { while(p != NULL) { cout << p -> data << endl; //Вывод на экран переменной data p = p -> next; //Переходим на следующий указатель } }

spisok *search(int x) //Поиск числа { spisok *n; p = q; //Присваиваем указателю p spisok *search(int x) //Поиск числа { spisok *n; p = q; //Присваиваем указателю p начало списка n = NULL; while(p != NULL && p -> data != x)//Выполняем пока не наступил конец { //или не нашли число p = p -> next; //Переход к следующему элементу списка n = p; //Присваиваем порядковый номер числа -- kol; //Уменьшаем счетчик } return n; }

paste(int n, int x) //Вставка элемента { spisok *d; d = new spisok; //Перемещаем paste(int n, int x) //Вставка элемента { spisok *d; d = new spisok; //Перемещаем указатель списка в конец for (int i = 0; i < kol - n; i ++) p = p -> next; d -> data = x; d -> next = p -> next; p -> next = d; ++ kol; return 0; }

void del(int x) { spisok *n = NULL; int i = 0; p = void del(int x) { spisok *n = NULL; int i = 0; p = q; while(p != NULL && p -> data != x) { n = p; p = p -> next; i ++; } if (i == 0) { n = p; p = p -> next; delete n; p 2 = p; } else { n -> next = p -> next; delete p; } }

main(void) { int elem, poisk, d, past, zn_p, max; clrscr(); cout << main(void) { int elem, poisk, d, past, zn_p, max; clrscr(); cout <<"Введите количество элементов -> "; cin >> max; q = NULL; /*Ввод элементов*/ //--------------------------

for(int i = 0; i < max; i ++) { cout << for(int i = 0; i < max; i ++) { cout <<"Ввод элемента № "< "; cin >> elem; pop(elem); } //--------------------------p 2 = p; clrscr(); cout << "Укажите номер вставки -> "; cin >> past; cout << "Укажите значение которое необходимо вставить -> "; cin >> zn_p; paste(past, zn_p); p = p 2; view(); cout << "Введите элемент для поиска ->"; cin >> poisk; p = p 2; search(poisk);

" << kol << endl; p = p" src="https://present5.com/presentation/9484226_148486981/image-9.jpg" alt="cout << "Номер найденного элемента -> " << kol << endl; p = p" /> cout << "Номер найденного элемента -> " << kol << endl; p = p 2; view(); cout << "Введите элемент для удаления -> "; cin >> d; del(d); p = p 2; view(); getch(); return 0; }