Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <locale>
- using namespace std;
- //Создать по типу стека.
- //Тип информационного поля int.
- //Удалить из списка первый элемент с четным информационным полем.
- struct point{
- int data;
- point* next;
- point* pred;
- };
- void print_list(point* beg)
- //печать списка
- {
- point* p = beg;//начало списка
- while (p != 0)
- {
- cout << p->data << "\t";
- p = p->next;//переход к следующему элементу
- }
- }
- void print_list2(point* beg)
- //печать списка
- {
- point* p = beg;//начало списка
- while (p->next != NULL){
- p = p->next;
- }
- while (p != 0)
- {
- cout << p->data << "\t";
- p = p->pred;//переход к следующему элементу
- }
- }
- point* make_point()
- //создание одного элемента
- {
- point*p = new(point);
- p->next = 0; p->pred = 0;//обнуляем указатели
- cout << "Число ? ";
- cin >> p->data;
- return p;
- }
- point*make_list(int n)
- //создание списка
- {
- point *p, *beg;
- beg = make_point();//создаем первый элемент
- for (int i = 1; i<n; i++)
- {
- p = make_point();//создаем один элемент
- //добавление элемента в начало списка
- p->next = beg;//связываем р с первым элементом
- beg->pred = p;//связываем первый элемент с p
- beg = p;// p становится первым элементом списка
- }
- return beg;
- }
- point* del_point(point*beg)
- {
- point* p;
- point* r = new (point);
- bool boo = true;
- p = beg;
- r->next = NULL;
- r->data = 0;
- while (p->next != NULL && boo){
- if (p->data % 2 == 0 && p->data != 0) { r = p; boo = false; }
- p = p->next;
- }
- if (r->data != 0){
- p = beg;
- while (p->next != r){
- p = p->next;
- }
- p->next = r->next;
- r->next->pred = r->pred; //связываем k+1 и k-1
- delete r;
- }
- return beg;
- }
- void main(){
- setlocale(LC_ALL, "rus");
- int n, i = 0;
- cout << "Введите кол-во элементов" << endl;
- cin >> n;
- point* beg = make_list(n);
- cout << "Исходный список : " << endl;
- print_list(beg);
- cout << endl;
- print_list2(beg);
- cout << endl;
- beg = del_point(beg);
- cout << endl;
- cout << endl;
- print_list(beg);
- cout << endl;
- print_list2(beg);
- cout << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment