c++ program senarai berantai (stack/tumpukan)

Diposting pada
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;
}

Gambar Gravatar
Blogger dan Programmer | andhika.na@gmail.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *