С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Litta
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 48
#1

Добавление и удаление- Линейный однородный список (ЛОС) - C++

14.05.2010, 22:37. Просмотров 976. Ответов 3
Метки нет (Все метки)

Здравствуйте!Помогите написать методы добавления нового элемента в ЛОС и удаления из ЛОС.Очень хотелось бы разобраться
Если у кого-то какие-то идеи, пожайлуста, поделитесь ими =)



Код
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<fstream.h>
#define n 3

  class  shop
 {char adres[80];
  char tip[80];
  char str[20];
  int nomer;
  int b;
  shop *next;
  public:
  static shop *p;
  void create();
  void search();
  void add();
  void cut();
  void output();
  

  };

   shop*shop::p;

  void shop::create()
  {shop *q;
   p=new shop;
   cout<<"vvedite nomer,adres,tip magazina: "<<"\n";
   cin>>p->nomer;
   gets(p->adres);
   gets(p->tip);
   q=p;

   for(int i=0;i<n-1;i++)
    {q->next=new shop;
    q=q->next;
    cin>>q->nomer;
    gets(q->adres);
    gets(q->tip);
    }
   q->next=NULL;
   getch();
   }





  void shop::output()
  {shop *q;
  q=p;
  while (q!=NULL)
    {cout<<q->nomer<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
     q=q->next;
     }
  getch();
  }


   void shop::search()
   {shop *q;
    int key;
    cout<<"enter key \n";
    cin>>key;
    q=p;
    while(q!=NULL&&q->nomer<key)
      q=q->next;
    if(q!=NULL&&q->nomer==key )
    {cout<<"object is found:"<<"\n";
     cout<<q->nomer;
     cout<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
    }

    else
     cout<<"the element is not found \n";
     getch();
    }


     void shop::add()
  {
   shop *q;
   p=new shop;
   cout<<"vvedite nomer,adres,tip magazina: "<<"\n";
   cin>>p->nomer;
   gets(p->adres);
   gets(p->tip);
   q=p;
      for(int i=0;i<n;i++)
    {cout<<q->nomer<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
     q=q->next;
     }

   getch();
   }

      void shop::add()
  {
   shop *q;
   p=new shop;
   cout<<"vvedite nomer,adres,tip magazina: "<<"\n";
   cin>>p->nomer;
   gets(p->adres);
   gets(p->tip);
   q=p;
      for(int i=0;i<n;i++)
    {cout<<q->nomer<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
     q=q->next;
     }

   getch();
   }



    void main()
    {shop ob;
     cout<<"sozdanie: "<<"\n";
     ob.create();
     cout<<"vivod: "<<"\n";
     ob.output();
     cout<<"poisk: "<<"\n";

     ob.search();
     cout<<"dobavlenie: "<<"\n";
     ob.add();
     getch();

    }
Добавлено через 5 минут
извините- линейный ОДНОНАПРАВЛЕННЫЙ список
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 22:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Добавление и удаление- Линейный однородный список (ЛОС) (C++):

Добавление элемента в линейный список после 1-го, 3-го, 5-го и т.д - C++
Помогите пожалуйста, нужно написать функцию добавления в линейный список заданного элемента после 1-го, 3-го, 5-го и т.д.

Добавление элементов в односвязный линейный список - C++
Всем добрый день! Написала функцию, которая добавляет элементы в список, причем каждый элемент добавляется по принципу, чтобы список был...

Оптимизировать добавление элемента в линейный список - C++
Функция void add_pered() добавляет перед элементов номер 5 нужный нам элемент. Как можно оптимизировать работу программы? Она работает, но...

Линейный однонаправленный список. Удаление элементов - C++
Создать линейный однонаправленный список. Удалить из него все символы 'p' перед символом 'a'. Вывести список после ввода символов и после...

Линейный список. Удаление простых чисел из него - C++
Построить линейный список из входной последовательности чисел. Удалить из него все простые числа #include &lt;iostream&gt; #include...

Вставить в линейный список перед элементом с заданным значением другой линейный список - C++
Как можно вставить в линейный список перед элементом с заданным значением другой линейный список? Как один элемент вставлять, я знаю, а вот...

3
Sudoki
124 / 64 / 1
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 22:47 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<fstream.h>
#define n 3
 
  class  shop
 {char adres[80];
  char tip[80];
  char str[20];
  int nomer;
  int b;
  shop *next;
  public:
  static shop *p;
  void create();
  void search();
  void add();
  void cut();
  void output();
  
 
  };
 
   shop*shop::p;
 
  void shop::create()
  {shop *q;
   p=new shop;
   cout<<"vvedite nomer,adres,tip magazina: "<<"\n";
   cin>>p->nomer;
   gets(p->adres);
   gets(p->tip);
   q=p;
 
   for(int i=0;i<n-1;i++)
    {q->next=new shop;
    q=q->next;
    cin>>q->nomer;
    gets(q->adres);
    gets(q->tip);
    }
   q->next=NULL;
   getch();
   }
 
 
 
 
 
  void shop::output()
  {shop *q;
  q=p;
  while (q!=NULL)
    {cout<<q->nomer<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
     q=q->next;
     }
  getch();
  }
 
 
   void shop::search()
   {shop *q;
    int key;
    cout<<"enter key \n";
    cin>>key;
    q=p;
    while(q!=NULL&&q->nomer<key)
      q=q->next;
    if(q!=NULL&&q->nomer==key )
    {cout<<"object is found:"<<"\n";
     cout<<q->nomer;
     cout<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
    }
 
    else
     cout<<"the element is not found \n";
     getch();
    }
 
 
     void shop::add()
  {
   shop *q;
   p=new shop;
   cout<<"vvedite nomer,adres,tip magazina: "<<"\n";
   cin>>p->nomer;
   gets(p->adres);
   gets(p->tip);
   q=p;
      for(int i=0;i<n;i++)
    {cout<<q->nomer<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
     q=q->next;
     }
 
   getch();
   }
 
      void shop::add()
  {
   shop *q;
   p=new shop;
   cout<<"vvedite nomer,adres,tip magazina: "<<"\n";
   cin>>p->nomer;
   gets(p->adres);
   gets(p->tip);
   q=p;
      for(int i=0;i<n;i++)
    {cout<<q->nomer<<"  ";
     cout<<q->adres<<"  ";
     cout<<q->tip<<"\n";
     q=q->next;
     }
 
   getch();
   }
 
 
 
    void main()
    {shop ob;
     cout<<"sozdanie: "<<"\n";
     ob.create();
     cout<<"vivod: "<<"\n";
     ob.output();
     cout<<"poisk: "<<"\n";
 
     ob.search();
     cout<<"dobavlenie: "<<"\n";
     ob.add();
     getch();
 
    }
Добавлено через 42 секунды
Так получше будет а то от серости в глазах рябит ))

Добавлено через 4 минуты
Обычно в список добавляют указатель на первый элемент First и последний Last.

И раз уж это класс то надо методами делать next(); И prev(); first(); last();
0
Litta
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 48
14.05.2010, 23:10  [ТС] #3
Sudoki, хе-хе- действительно красиво ^_^.....А вы не могли бы предоставить код, чтобы легче было разобраться и подготовиться к экзамену ?=)
0
Sudoki
124 / 64 / 1
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 23:13 #4
Ищите книгу "Полный справочник по С" 4-е издание
0
14.05.2010, 23:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2010, 23:13
Привет! Вот еще темы с ответами:

Односвязный список. Добавление и удаление в строку - C++
Здравствуйте, есть задача. Дана строка, если в ней встречается '*', то нужно удвоить ее, если встречаются два '-' подряд, то нужно один...

Двунаправленный список (добавление/удаление/сортировка) - C++
Задание: Необходимо создать двунаправленный список содержащий в себе информацию в виде &quot;Имя и номер телефона&quot; Операции которые должны...

Двунаправленный список (добавление/удаление элементов в голову, просмотр списка, реализовать дублирование элементов с заданным значением) - C++
Здравствуйте! Помогите написать программу, обеспечивающую работу с двунаправленным нециклическим списком: добавление/удаление элементов в...

Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке - C++
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.