Koding C Plus Plus di bawah ini adalah jawaban kuis pelajaran Algoritma dan Struktur data Lanjutan , namanya entah stack atau queue . ane lupa lagi . yang pasti kodingnya di bawah ini , semoga bermanfaat
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
//#include <alloc.h>
using namespace std;
typedef struct TNode
{
char nrp;
char nama[25];
TNode *next;
}TNode;
TNode*head;
void init()
{
head=NULL;
}
int isEmpty()
{
if (head==NULL)
return 1;
else
return 0;
}
int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void cari();
void tampil();
struct simpul
{
char nrp[10], namamhs [30], alamat[50];
float ipk;
struct simpul *next;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;
int main()
{
do
{
//clrscr();
cout<<"Created By : Rino Abdullah\n";
cout<<"____________________________\n";
cout<<"DATA MAHASISWA\n"<<endl;
cout<<"____________________________\n";
cout<<"1. Tambah Depan\n"<<endl;
cout<<"____________________________\n";
cout<<"2. Tambah Belakang\n"<<endl;
cout<<"____________________________\n";
cout<<"3. Hapus Depan\n"<<endl;
cout<<"____________________________\n";
cout<<"4. Hapus Belakang\n"<<endl;
cout<<"____________________________\n";
cout<<"5. Cari Data\n"<<endl;
cout<<"____________________________\n";
cout<<"6. Tampilkan\n"<<endl;
cout<<"____________________________\n";
cout<<"7. Selesai\n"<<endl;
cout<<"____________________________\n";
cout<<"Pilihan Anda : [harap Isi dengan angka 1 Sampai 7]\t";
cin>>pil;
pilih();
} while(pil!=6);
return 0;
}
void pilih()
{
if(pil==1)
tambah_depan();
else if(pil==2)
tambah_belakang();
else if(pil==3)
hapus_depan();
else if(pil==4)
hapus_belakang();
else if(pil==5)
cari();
else if(pil==6)
tampil();
else
cout<<"selesai";
}
void buat_baru()
{
baru=(simpul*)malloc(sizeof(struct simpul));
cout<<"input nrp : ";cin>>baru->nrp;
cout<<"input nama : ";cin>>baru->namamhs;
cout<<"input alamat : ";cin>>baru->alamat;
cout<<"input ipk : ";cin>>baru->ipk;
baru->next=NULL;
}
void tambah_belakang()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
}
else
{
akhir->next=baru;
}
akhir=baru;
akhir->next=NULL;
cout<<endl<<endl;
tampil();
}
void tambah_depan()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
akhir->next=NULL;
}
else
{
baru->next=awal;
awal=baru;
}
cout<<endl<<endl;
tampil();
}
void hapus_depan()
{
if (awal==NULL)
cout<<"Kosong";
else
{
hapus=awal;
awal=awal->next;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void hapus_belakang()
{
if (awal==NULL)
cout<<"Kosong";
else if(awal==akhir)
{
hapus=awal;
awal=awal->next;
free(hapus);
}
else
{
hapus=awal;
while(hapus->next!=akhir)
hapus=hapus->next;
akhir=hapus;
hapus=akhir->next;
akhir->next=NULL;
free(hapus);
}
cout<<endl<<endl;
tampil();
}
void cari()
{
TNode *bantu ;
bantu=head;
char caridata, nrp, namamhs;
cout<<"\n\n------------------------------------";
cout<<"\nNRP Yang Dicari \t: ";
cin>>caridata;
int ketemu;
if (isEmpty()==0)
{
while (bantu!=NULL)
{
bantu->nrp;
if(caridata==bantu->nrp)
{
cout<<"\n\n>>> Data Yang Anda Cari Ditemukan <<<";
cout<<"\n NRP yang dicari : ";cin>>nrp;
ketemu=1;
cout<<"\n Nama Yang Bersangkutan Adalah ";cin>>namamhs;
cout<<"\n\n";
}
bantu=bantu->next;
}
if (ketemu==0)
{
cout<<"Data Tidak Ditemukan";
}
}
else cout<<"Data Masih Kosong";
getch();
}
void tampil()
{
if (awal==NULL)
cout<<"Kosong";
else
{
bantu=awal;
while(bantu!=NULL)
{
cout<<" nrp : "<<bantu->nrp;
cout<<" nama : "<<bantu->namamhs;
cout<<" alamat : "<<bantu->alamat;
cout<<" ipk : "<<bantu->ipk;
cout<<endl;
bantu=bantu->next;
}
}
getch();
}
0 Komentar: