single linked list circullar
#include"stdio.h"
#include"constream.h"
#include"stdlib.h"
#include"ctype.h"
#include"string.h"
struct simpul{
char ltp[15];
char type[30];
int harga;
simpul *berikut;
};
int masih;
char temp[20];
simpul *awal=NULL;
int opsi = 0;
int kosong(){
if (awal ==NULL) return 1;
else return 0;
}
void tambah_depan(){
clrscr();
simpul *baru;
baru = new simpul;
cout << "Masukkan merk laptop : ";
cin >> baru-> ltp;
cout << "Masukkan Type : ";
cin >> baru-> type;
cout << "Masukkan Harga : ";
cin >> baru-> harga;
baru->berikut = NULL;
clrscr();
if(kosong()==1){
awal=baru;
awal->berikut = NULL;
}else {
baru->berikut = awal;
awal = baru;
}
getch();
}
void tambah_belakang(){
clrscr();
simpul *baru,*bantu;
baru = new simpul;
cout << "Masukkan Merk Laptop : ";
cin >> baru-> ltp;
cout << "Masukkan Type : ";
cin >> baru-> type;
cout << "Masukkan Harga : ";
cin >> baru-> harga;
baru->berikut = NULL;
clrscr();
if(kosong()== 1){
awal=baru;
awal->berikut = NULL;
} else {
bantu=awal;
while(bantu->berikut!=NULL){
bantu=bantu->berikut;
}
bantu->berikut = baru;
}
getch();
}
void tambah_ditengah(){
clrscr();
simpul *baru, *bantu;
int posisi;
if(kosong()== 0){
cout<<"Akan disisip setelah Data Ke ? : "; cin>>posisi;
bantu=awal;
baru=new simpul;
for(int i=1;i<posisi;i++){
if(bantu->berikut!=NULL)
bantu=bantu->berikut;
else break;
}
cout << "Masukkan Merk Laptop : ";
cin >> baru-> ltp;
cout << "Masukkan Type : ";
cin >> baru-> type;
cout << "Masukkan Harga : ";
cin >> baru-> harga;
baru->berikut=bantu->berikut;
bantu->berikut=baru;
clrscr();
}
else cout<<"Silahkan masukkan Data terlebih dahulu";
}
void hapus_depan () {
clrscr();
simpul *hapus;
if (kosong() == 0){
if(awal->berikut !=NULL){
hapus = awal;
awal = awal->berikut;
delete hapus;
clrscr();
} else {
awal = NULL;
}
}else {
cout<<"Data masih kosong !!!!\n";
}
}
void hapus_belakang(){
clrscr();
simpul *hapus, *bantu;
if (kosong()==0){
if(awal->berikut !=NULL){
bantu = awal;
while(bantu->berikut->berikut!=NULL){
bantu = bantu->berikut;
}
hapus = bantu->berikut;
bantu->berikut = NULL;
delete hapus;
clrscr();
} else {
awal = NULL;
}
} else {
cout<<"Data masih kosong !!!!\n";
}
}
void hapus_tengah(){
clrscr();
int banyakdata,posisi,poshapus;
simpul *hapus, *bantu;
if(kosong()== 0){
cout<<" Akan dihapus pada data ke : "; cin>>posisi;
banyakdata=1;
bantu=awal;
while(bantu->berikut!=NULL)
{
bantu=bantu->berikut;
banyakdata++;
}
if((posisi<1)||(posisi>banyakdata)){
cout<<"Silahkan masukkan Data terlebih dahulu\n";
}else {
bantu=awal;
poshapus=1;
while(poshapus<(posisi-1))
{
bantu=bantu->berikut;
poshapus++;
}
hapus=bantu->berikut;
bantu->berikut=hapus->berikut;
delete hapus;
clrscr();
}
}
else cout<<"Silahkan masukkan Data terlebih dahulu! ";
}
void tampil_list(){
clrscr();
simpul *bantu;
bantu = awal;
if(kosong()==1){
cout<<"Data masih kosong\n";
} else {
cout<<endl<<" DATA LINKED LIST\n";
while(bantu!=NULL){
cout<<" Laptop" << bantu->ltp << " \n";
cout<<" Type " << bantu->type<< " \n";
cout<<" Harga " << bantu->harga<< " \n";
bantu=bantu->berikut;
}
cout<<endl;
}
getch();
}
void menu(int opsi){
clrscr();
do{
clrscr();
cout<<endl;
cout<<endl;
cout<<endl;
cout<<"-:: MENU PILIHAN::-" <<endl;
cout<<endl;
cout<<"1. Tambah dari Depan." <<endl;
cout<<"2. Tambah dari Belakang." <<endl;
cout<<"3. Tambah dari Tengah." <<endl;
cout<<"4. Hapus dari Depan." <<endl;
cout<<"5. Hapus dari Belakang." <<endl;
cout<<"6. Hapus dari Tengah." <<endl;
cout<<"7. Tampilkan Data." <<endl;
cout<<"8. Keluar." <<endl;
cout<<endl;
cout<< "Pilihan Menu : ";
cin >>opsi;
switch(opsi){
case 1 : clrscr();
tambah_depan();
break;
case 2 : clrscr();
tambah_belakang();break;
case 3 : clrscr();
tambah_ditengah();
break;
case 4 : clrscr();
hapus_depan();
break;
case 5 : clrscr();
hapus_belakang();
break;
case 6 : clrscr();
hapus_tengah();
break;
case 7 : clrscr();
tampil_list();
break;
}
}while (opsi != 8);
}
void main()
{
clrscr();
menu(opsi);
getch();
}
Langganan:
Komentar (Atom)

Tidak ada komentar:
Posting Komentar