#include<stdio.h>
#include<stdlib.h>
struct Simpul{
int Data;
struct Simpul *Link;
};
typedef struct Simpul SIMPUL;
void hapusList(SIMPUL*P)
{
if (P->Link !=NULL)
{
hapusList(P->Link);
free(P->Link);
P->Link=NULL;
}
}
int sisipSimpul (SIMPUL*L,SIMPUL*P,int n)
{
SIMPUL *Q=L;
int i;
for (i=1;i<n;i++)
if (Q->Link !=NULL)Q=Q->Link;
else break;
P->Link=Q->Link;
Q->Link=P;
return i;
}
int hapusSimpul(SIMPUL*L,int n)
{
SIMPUL *Q=L;
SIMPUL *R;
int i;
for (i=1;i<n;i++)
if (Q->Link !=NULL)Q=Q->Link;
else
{
i=0;
break;
}
if(i!=0)R=Q->Link;
if((i==0)||(R==NULL))return 0;
else
{
Q->Link=R->Link;
free(R);
return 1;
}
}
/**********************Program utama di mulai di sini************************/
int main()
{
SIMPUL * Head =malloc(sizeof(SIMPUL));
SIMPUL * P=Head;
P->Data=0;
FILE * F;
int Data;
F=fopen ("aku.txt","r");
if (F==NULL) printf ("file tidak ada\n");
else while (fscanf(F,"%d",&Data) !=EOF)
{
P->Link=malloc(sizeof(SIMPUL));
P=P->Link;
P->Data=Data;
};
if(F!=NULL)fclose(F);
P->Link=NULL;
//************menelusuri dan menampilkan isi simpul
P=Head;
while (P->Link!=NULL)
{
P=P->Link;
printf("isi awal Simpul: Data= %d\n",P->Data);
};
//**************menambah simpul
P=malloc(sizeof(SIMPUL));
P->Data =999;
sisipSimpul(Head, P, 3);
//************menelusuri dan menampilkan isi simpul
P=Head;
while (P->Link!=NULL)
{
P=P->Link;
printf("isi akhir Simpul: Data= %d\n",P->Data);
};
//menghapus linkedlist
hapusList(Head);
return 0;
}
Tidak ada komentar:
Posting Komentar