laporan prkatek jaringan

Minggu, 06 Mei 2012

program data

penambahan data.

#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