Język C
-
- Użytkownik
- Posty: 1847
- Rejestracja: 8 lip 2008, o 21:16
- Płeć: Mężczyzna
- Lokalizacja: Staszów/Warszawa
- Podziękował: 7 razy
- Pomógł: 378 razy
Język C
Jak napisać funkcje która będzie na liście z głową usuwać elementy włącznie z głową. Chodzi mi tutaj o to jak skasować głowę z listy i zastąpić nią inną??
-
- Użytkownik
- Posty: 311
- Rejestracja: 15 mar 2007, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Lublin
- Podziękował: 28 razy
- Pomógł: 54 razy
Język C
Nie wiem o co dokładnie może Ci chodzić Może o coś takiego:
[ Dodano: 11 Września 2008, 21:33 ]
Temat mógłby być trochę inny - bo tak "Język C" to trochę mało mówi.
Kod: Zaznacz cały
struct Element
{
int value;
Element* next;
};
(...)
void List::push_front(int inValue)
{
++mSize;
Element* e = new Element();
e -> value = inValue;
e -> next = NULL;
if(mHead == NULL) {
mHead = mTail = e;
}
else {
e -> next = mHead;
mHead = e;
}
}
Czy chcesz skasować całą listę?robertm19 pisze:Jak napisać funkcje która będzie na liście z głową usuwać elementy włącznie z głową.
[ Dodano: 11 Września 2008, 21:33 ]
Temat mógłby być trochę inny - bo tak "Język C" to trochę mało mówi.
-
- Użytkownik
- Posty: 311
- Rejestracja: 15 mar 2007, o 16:52
- Płeć: Mężczyzna
- Lokalizacja: Lublin
- Podziękował: 28 razy
- Pomógł: 54 razy
Język C
Tak wygląda kasowania pierwszego elementu z listy, możesz tą metodę zmodyfikować, żeby kasować dowolny element.
Kod: Zaznacz cały
void List::pop_front()
{
if(mHead != NULL) {
--mSize;
if(mHead == mTail) {
delete mHead;
mHead = mTail = NULL;
}
else {
Element* e = mHead;
e = e -> next;
delete mHead;
mHead = e;
}
}
}