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();
}

Tidak ada komentar:

Posting Komentar

revtwt

iklan