У меня есть класс-член, где я хочу удалить узел, используя идентификатор.Я создал структуру для связанного списка.все остальные функции работают нормально, но я не могу удалить узел в заданной позиции.Он отлично работает, когда я добавляю элемент и когда я показываю его, но когда дело доходит до удаления узла, он не работает.
#include <iostream>
#include <string>
class member {
public:
struct nodetype {
int id;
string name;
string password;
string type;
nodetype* next;
};
member() {
start = NULL;
}
void addMember(int x, string n, string p, string t) {
nodetype* temp = new nodetype();
temp->id = x;
temp->name = n;
temp->password = p;
temp->type = t;
temp->next = start;
start = temp;
}
void showMember()
{
nodetype* temp = start;
while (temp != NULL)
{
cout << temp->id << "\t" << temp->name << "\t" << temp->type << "\t" << temp->password << endl;
temp = temp->next;
}
}
void deleteMember(int x)
{
nodetype* tmp = start;
while (tmp != NULL)
{
if (tmp->id == x)
{
nodetype* del = tmp;
start->next = tmp->next;
delete del;
}
}
}
private:
nodetype* start;
};
int main()
{
member obj;
obj.addMember(1,"joe","123","student");
obj.addMember(2,"john","456","staff");
obj.deleteMember(2);
obj.showMember();
}