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

Удаление узла из односвязного списка по заданному параметру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ По atlimage.h http://www.cyberforum.ru/cpp-beginners/thread62831.html
Здравствуйте Где можна найти atlimage.h ? Делаю небольшой проект с рисунками, а студия выдает ошибку fatal error C1083: Cannot open include file: 'atlimage': No such file or directory
C++ странное поведение fstream ниже представлен черновой код курсача. как из него видно я пытаюсь работать с файлами, но у меня ничего не выходит. а именно: я создаю fstream libraryFile, затем передаю его в функцию newBook(), та отрабатывает а получаю пшик - файл бывший пустым до её работы таковым и остаётся после её завершения. что примечательно во втором куске кода, взятом из тестовой программы, те же самые операции... http://www.cyberforum.ru/cpp-beginners/thread62819.html
Дублирование символа C++
есть строка.. Необходимо продублировать символ... т.е. есть строка например 'qwerty' надо получить 'qweerty' по идее строка - массив символов.. Как в середину массива засунуть ещё один символ,чтоб не потерять последующий??
Чтение файла в массив строк C++
Доброго времени суток!!! Как считать файл в массив строк? Заранее спасибо!!!
C++ Функций http://www.cyberforum.ru/cpp-beginners/thread62806.html
Помогите плиззз решить оч надо , за ранее примного благодарен ))) 1.Создайте функцию, заменяющую содержимое двух переменных их суммой и разностью. 2.Определите функцию hypotenuse, которая вычисляет длину гипотенузы прямоугольного треугольника по двум другим сторонам. Используйте эту функцию в программе для определения длины гипотенузы треугольников, приведенных ниже. Функция должна...
C++ Построение ломаной с использование graphics.h добрый день всем! мне этот сайт порекомендовала подруга в том что вы можете решить проблему и дать совет в розроботке программы на с++.. так вот, у меня возникли проблемы с курсовой работой: условие звучит так: В файле заданы координаты центров и радиусы окружностей. В другом файле заданы координаты одной из вершин вложенного квадрата для каждой окружности. Вывести на экран окружности и... подробнее

Показать сообщение отдельно
pigah
12 / 12 / 2
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
11.11.2009, 00:20     Удаление узла из односвязного списка по заданному параметру
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
struct listEl{
  int data;
  listEl *pNext;
  listEl(int d=0):data(d),pNext(0)
  {
  }
};
class list{
  listEl*pHead;
  int N;
public:
  list():pHead(0),N(0){
      }
  list& operator=(list &b){
    if(this!=&b)
    {      
      (*this).list::~list();
      (*this).list::list(b);
    }    
    return *this;
  }
  bool operator!=(list&ob){
        if(this->N!=ob.N)
            return true;
        listEl*p1=ob.pHead;
        listEl*p2=this->pHead;
        while(p1||p2){
            if(p1->data!=p2->data)
                return true;
            p1=p1->pNext;
            p2=p2->pNext;
        }
        return false;
    }
    list&operator+=(list&ob){
//      listEl*p1=this->pHead;
        listEl*p2=ob.pHead;
        //while(p1)
        //  p1=p1->pNext;
        while(p2){
      this->addElemToEnd(p2->data);
            p2=p2->pNext;
        }
        return(*this);
    }
    list operator+(list&ob){
        list p(*this);
        p+=ob;
        return p;
    }
 
 
  void addToHead(int d){
    listEl*pNew=new listEl(d);
    if(N==NULL){
      pHead=pNew;
      N++;
      return;
    }
    pNew->pNext=pHead;
    pHead=pNew;
    N++;
  }
  void addElemToEnd(int d){
    listEl*pNew=new listEl(d);
        listEl*p=pHead;
        listEl*pTail=pHead;
    if(pHead==NULL){
            this->addToHead(d);
      return;
    }
        else{
      while(p){
        pTail=p;
        p=p->pNext;
      }
      pTail->pNext=pNew;
      N++;
    }
  }
  void print(){
    listEl*p=pHead;
    while(p){//p!=NULL
      cout<<p->data<<"\t";
      p=p->pNext;
    }//while p
  }
  bool delHead(){
    listEl *p =pHead ;
    if(p == NULL){
      //cout<<"ОШИБКА: Список пуст!!!\n";
      return 0;
    }
    else{
      pHead =p->pNext;
      delete p;
      return 1;
    }
  }
  ~list(){
    while(delHead());
  }
  bool delPosEl(){
    listEl*p=pHead;
    listEl*posEl=pHead;
    if(p==NULL) {
      return 0;
    }if(N==1){
      delete p;
      pHead=0;
      N--;
      return 1;
    }else{
      while(posEl->pNext->pNext!=NULL){
        posEl=posEl->pNext;
      }
      p=posEl->pNext;
      delete p;
      posEl->pNext=0;
      N--;
      return 1;
    }
  }
  
  bool deleteCentreElem(int index){
      listEl*p=pHead; 
      listEl*pk;
      if(pHead==NULL){
          return 0;
          }else{ 
              if((index>=N)||(index <0)){
 
          return 0;
          //return delHead();
                  }else{ 
                      for(int i=1;i<index-1;i++){
                          p=p->pNext;
                          } 
                      pk=p->pNext;
                      p->pNext=pk->pNext;  
                      delete pk; 
            N--;    
                  }//else
              return 1;
          }//else
      return 0;
      }//delete 
  int countElem(){
      listEl*p=pHead;   
      int count=0; 
      while(p!=NULL){
          ++count;
          p=p->pNext;  
          } 
      return count; 
      }      
  void insert(int d,int index){
      listEl*pk=pHead; // Указатель на заданный элемент 
      if(pHead==NULL){
          cout<<"Error:Список пуст\n";
          }else{
              if((index >= countElem()) || (index <= 0)){ 
                  cout<<"Error:Вставка елемента не возможна\n";
                  }else{ 
                      for(int i = 1; i < index; i++){
                          pk=pk->pNext;  
                          }  
                      listEl*pNew=new listEl(d);
                      pNew->pNext=pk->pNext; 
                      pk->pNext=pNew;
            N++;
                  }    
          }
      }
  list(list &b):N(0),pHead(0)
  {
    listEl*p=b.pHead;
    //this->N=b.N;
    //this->pHead=p;    
    while (p){
      this->addElemToEnd(p->data); 
      p=p->pNext;              
    }     
  }
};
 
Текущее время: 07:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru