Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Litta
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 48
14.05.2010, 22:37     Добавление и удаление- Линейный однородный список (ЛОС) #1
Здравствуйте!Помогите написать методы добавления нового элемента в ЛОС и удаления из ЛОС.Очень хотелось бы разобраться
Если у кого-то какие-то идеи, пожайлуста, поделитесь ими =)



Код
#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 минут
извините- линейный ОДНОНАПРАВЛЕННЫЙ список
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 22:37     Добавление и удаление- Линейный однородный список (ЛОС)
Посмотрите здесь:

C++ Линейный список.
Двунаправленный список (добавление/удаление элементов в голову, просмотр списка, реализовать дублирование элементов с заданным значением) C++
Оптимизировать добавление элемента в линейный список C++
C++ Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств )
C++ Добавление элемента в линейный список после 1-го, 3-го, 5-го и т.д
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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();
Litta
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 48
14.05.2010, 23:10  [ТС]     Добавление и удаление- Линейный однородный список (ЛОС) #3
Sudoki, хе-хе- действительно красиво ^_^.....А вы не могли бы предоставить код, чтобы легче было разобраться и подготовиться к экзамену ?=)
Sudoki
124 / 64 / 1
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 23:13     Добавление и удаление- Линейный однородный список (ЛОС) #4
Ищите книгу "Полный справочник по С" 4-е издание
Yandex
Объявления
14.05.2010, 23:13     Добавление и удаление- Линейный однородный список (ЛОС)
Ответ Создать тему
Опции темы

Текущее время: 13:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru