SLLNC – lanjutan (penambahan data ditengah list)

Diilhami dari tugas kuliah. Terimakasih untuk dosen saya, Pak Iksan yang sudah memberi tugas ini. Jadinya saya jadi punya ‘bahan’ untuk diposting dan dibuat. Saya lihat di google sepertinya belum ada yang membahas link-list lanjutan, atau cuma saya yang kurang beruntung bisa menemukannya ==” . Langsung saja.

Di tulisan sebelumnya yang telah saya post di blog ini membahas tentang fungsi-fungsi umum pada program SLLNC (Single Linked-List Non Circular) seperti penambahan data dari depan, belakang, menampilkan data, menghapus dari depan, belakang, dan menghapus keseluruhan. Sekarang saya tambahi dengan penambahan data dari tengan link-list.

Logikanya sederhana, pertama kita harus mengetahui dulu jumlah data yang ada dalam link-list. Kemudian untuk mengetahui posisi tengah data, maka jumlah total data dibagi dua (jumlah/2). Kemudian dilakukan penyisipan data didalam link-list

dari program yang ada pada post https://ilmucerdas.wordpress.com/2012/05/22/program-sllnc-dengan-head-dan-tail-dengan-bahasa-c/, tambahkan fungsi berikut untuk melakukan penambahan data dari tengah.

 int jmlData(){
    struct node *tmp=first;
    int jml=0;
    if(first==NULL)return 0;
    else{ while(tmp!=NULL){
        tmp= tmp->link;
        jml++;}}
    return jml;
}
void addMiddle(){
    system("cls");
    struct node *tmp=first,*tmp2,*newData = malloc(sizeof(struct node));
    int jml = jmlData(),jml2=0,middle;
    if(jml<2)middle=0;
    else middle= (jml/2)-1;
    printf("\n _____Add from middle side_____");
    printf("\n\n Enter the item tobe created: ");
    scanf("%d", &newData->info);
    newData->link=NULL;
    if(first==NULL){
        first=last=newData;
        last->link=NULL;
    }
    else{
        while(jml2!=middle){
            tmp=tmp->link;
            jml2++;
        }
        tmp2= tmp->link;
        newData->link=tmp2;
        tmp->link=newData;
    }
    display();
}

Download program lengkapnya di link berikut :

http://adf.ly/Xsg6H

About Iin aryani

I don't wanna be a "Copycat" but, something they need to copy.

Posted on 29 May 2012, in Open Source ( C Program ) and tagged . Bookmark the permalink. 2 Comments.

  1. penghapusan tengahnya gmna?

Komentar untuk penulis

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: