View
47
Download
1
Category
Preview:
DESCRIPTION
Tentang Lined list
Citation preview
Memory Allocation (malloc) adalah sebuah fungsi fasilitas untuk memesan tempat secara berurutan untuk tipe data dinamis(pointer)Nilai balik dari memory allocation adalah void *
Bagaimana jika kita pesan 50000 alamat berurutan?Akan selalu gagal.Untuk itu kita lakukan memory allocation untuk setiap satu data.Bagaimana agar data pertama tetap berhubungan dengan data kedua?Kita gunakan pointer untuk menghubungkan
Linked lists are unbounded(maximum number of items limited only by memory)
Linked lists are unbounded(maximum number of items limited only by memory) Array : int A[3]Linked List : struct list *A;
A[2]A[1]A[0]
A(data 3)
A(data 2)A(data 1)
struct simpul{char nama[25];int nrp;struct simpul *next;};struct simpul *ujung;
namanrp
nextsimpuldatapointer yg menunjuk simpul lain
Apa yang harus dilakukan?DeklarasiMemory allocationMengisi dataMenyiapkan untuk dihubungkan dengan data baru berikutnya
struct simpul *ujung;ujung=(struct simpul*)malloc(sizeof(struct simpul));printf("Nama:");scanf("%s",&ujung->nama);printf("NRP:");scanf("%d",&ujung->nrp);if(j==0){ujung->next=NULL;tampung=ujung;}
nama1nrp1nextujungtampungNULL
ujung=(struct simpul*)malloc(sizeof(struct simpul));printf("Nama:");scanf("%s",&ujung->nama);printf("NRP:");scanf("%d",&ujung->nrp);if(j0){ujung->next=tampung;tampung=ujung;}nama2nrp2nextujungnama1nrp1nextNULLtampungnama2nrp2nextujungtampung
ujung=(struct dtnilai*)malloc(sizeof(struct dtnilai));printf("Nama:");scanf("%s",&ujung->nama);printf("NRP:");scanf("%d",&ujung->nrp);if(j0){ujung->next=tampung;tampung=ujung;}nama3nrp3nextujungnama1nrp1nextNULLtampungnama2nrp2nextnama3nrp3nextujungtampung
nama1nrp1nextNULLtampungnama2nrp2nextnama3nrp3nextnama4nrp4nextujung
nama1nrp1nextNULLtampilnama2nrp2nextnama3nrp3nextnama4nrp4nextujungtampil = ujung;while (tampilNULL)// fungsi menampilkantampil = tampil -> next;tampiltampiltampiltampil
nama1nrp1nextNULL carinama2nrp2nextnama3nrp3nextnama4nrp4nextujungcari = ujung;while (cari->nama!=nama2){cari = cari->next;}
cari cari
nama1nrp1next carinama2nrp2nextnama3nrp3nextnama4nrp4nextujungcari = ujungwhile (cari->next !=NULL) cari = cari->next;cari->next=baru;
namaxnrpxnextbaruNULL cari cari cariNULL
nama1nrp1nextNULL hapusnama2nrp2nextnama3nrp3nextnama4nrp4nextujunghapus = ujung;
nama1nrp1nextNULL hapusnama2nrp2nextnama3nrp3nextnama4nrp4nextujungwhile (hapus->nama != nama2){sbl = hapus;hapus=hapus->next;}
nama1nrp1nextNULL hapusnama2nrp2nextnama3nrp3nextnama4nrp4nextujungwhile (hapus->nama != nama2){sbl=hapus;hapus=hapus->next;} sbl
nama1nrp1nextNULL hapusnama2nrp2nextnama3nrp3nextnama4nrp4nextujungwhile (hapus->nama != nama2){sbl=hapus;hapus=hapus->next;} sbl
nama1nrp1nextNULL hapusnama2nrp2nextnama3nrp3nextnama4nrp4nextujungsbl->next=hapus->next; sbl
nama1nrp1nextNULLnama3nrp3nextnama4nrp4nextujungfree(hapus); sbl
nama1nrp1nextNULL carinama2nrp2nextnama3nrp3nextnama4nrp4nextujungcari = ujungnamaxnrpxnextbaru
nama1nrp1nextNULL carinama2nrp2nextnama3nrp3nextnama4nrp4nextujungwhile (cari->nama!=nama3)cari = cari->next;baru->next = cari->next;namaxnrpxnextbaru
nama1nrp1nextNULL carinama2nrp2nextnama3nrp3nextnama4nrp4nextujung
cari->next = baru;namaxnrpxnextbaru
nama1nrp1nextNULL carinama2nrp2nextnama3nrp3nextnama4nrp4nextujungcari = ujungnamaxnrpxnextbaru
nama1nrp1nextNULL stlnama2nrp2nextnama3nrp3nextnama4nrp4nextujungcari = ujung;while (cari->nama!=nama1) stl=cari; cari=cari->next;namaxnrpxnextbaru cari
nama1nrp1nextNULL stlnama2nrp2nextnama3nrp3nextnama4nrp4nextujungcari = ujung;while (cari->nama!=nama1) stl=cari; cari=cari->next;namaxnrpxnextbaru cari
nama1nrp1nextNULL stlnama2nrp2nextnama3nrp3nextnama4nrp4nextujungcari = ujung;while (cari->nama!=nama1) stl=cari; cari=cari->next;namaxnrpxnextbaru cari
nama1nrp1nextNULL stlnama2nrp2nextnama3nrp3nextnama4nrp4nextujungbaru->next = cari;namaxnrpxnextbaru cari
nama1nrp1nextNULL stlnama2nrp2nextnama3nrp3nextnama4nrp4nextujungstl->next = baru;namaxnrpxnextbaru cari
**
Recommended