c++ program senarai berantai (stack/tumpukan)

Posted on
Senarai adalah sekumpulan nilai bertipe sama yang mempunyai keterurutan keanggotaan. Berdasarkan keterurutan keanggotaan tersebut, jika diketahui sebuah anggota/elemen senarai maka dapat diketahui elemen berikutnya.
Setiap elemen senarai terbagi menjadi 2 bagian, yaitu:
1.   Info: menyimpan informasi, bisa berupa satu elemen data atau beberapa elemen data.
2.   Berikut: menyimpan ‘alamat’ dari elemen berikutnya. Alamat dapat berupa sebuah alamat kosong / NIL.
Senarai berantai merupakan contoh struktur data sederhana yang menggunakan pemakaian memori secara dinamis. Secara rinci, programmer dapat menulis suatu struct yang berisi variabel yang memegang informasi yang ada di dalamnya, yang mempunyai pointer yang menunjuk ke suatu struct sesuai dengan tipe datanya.
Dibandingkan dengan struktur array, struktur ini lebih dinamis, karena banyaknya elemen dengan mudah ditambah dan dikurangi, berbeda dengan array yang ukurannya bersifat tetap (statis).

dalam senarai terdapat 6 operasi yaitu : sisip awal,tengah,akhir dan hapus awal,tengah,akhir
tampilan program senarai

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<malloc.h>
#define Nil NULL
#define info(P) P->info
#define next(P) P->next
#define First(L) (L)
typedef int InfoType;
typedef struct telmtlist *address;
typedef struct telmtlist
{
InfoType info;
address next;
}elmtlist;
typedef address list;
void CiptaSenarai(list *L)
{
First(*L)=NULL;
}list NodBaru(int m)
{
list n;
n=(list) malloc(sizeof(elmtlist));
if(n!=NULL)
{
n->info=m;
n->next=NULL;
}return n;
}
void SisipSenarai(list *L, list t, list p)
{
if(p==NULL)
{
t->next = *L;
*L = t;
}else
{
t->next = p->next;
p->next = t;
}
}void CetakSenarai(list L)
{
list ps;
for(ps=L; ps!=Nil; ps=ps->next)
{
cout<<” “<<info(ps)<<” –>”;
}cout<<” NULL”<<endl;
}
int main()
{
list pel;
list n;
int i,k,nilai;
CiptaSenarai(&pel);
cout<<“Masukkan Banyak Data = “;
cin>>k;
for(i=1; i<=k; i++)
{
cout<&lt

;”Masukkan Data Senarai ke-“<<i<<” = “;
cin>>nilai;
n = NodBaru(nilai);
SisipSenarai(&pel, n, NULL);
}CetakSenarai(pel);
getch();
return 0;
}

Gravatar Image
Suka jalan-jalan, naik sepeda, bermain code-code asal tidak suka mengkode cinta. Hubungi email : andhika.na@gmail.com jika anda butuh website untuk personal maupun bisnis.

Leave a Reply

Your email address will not be published. Required fields are marked *