Próbowałam napisać funkcje która usunie ostatni element,mam coś takiego
Kod: Zaznacz cały
void usun_k()
{
struct lista*temp,*temp2;
temp=glowa;
while(temp->nast!=NULL)
temp=temp->nast;
temp->nast=temp2;
free(temp2)
}
ale element ostatni czyli 12 nadal jest,takze coś jest nie tak.
Kod: Zaznacz cały
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct lista
{
int dane;
struct lista*nast; //nast -następnik,wsakźnik pokazuje tylko na strukture
};
struct lista*glowa;
void wstaw_p(int x)
{
struct lista*temp;
temp=(struct lista*)malloc(sizeof(struct lista));
temp->dane=x;
temp->nast=glowa->nast;
glowa->nast=temp;
}
void wstaw_k(int x)
{
struct lista*temp,*temp2;
temp2=(struct lista*)malloc(sizeof(struct lista));
temp2->dane=x;
temp2->nast=NULL;
temp=glowa;
while(temp->nast!=NULL)
temp=temp->nast;
temp->nast=temp2;
}
void wypisz()
{
struct lista*temp;
temp=glowa->nast;
while(temp!=NULL)
{
printf(" %d ",temp->dane);
temp=temp->nast;
}
}
main()
{
glowa=(struct lista*)malloc(sizeof(struct lista));
glowa->dane=-1;
glowa->nast=NULL;
wstaw_p(10);
wstaw_p(7);
wstaw_p(13);
wstaw_p(5);
wstaw_k(12);
wypisz();
getch();
return;
}